SQL Server

[SQL Server]T-SQL DatePart 와 dayoyear 이용한 일수 계산하기

AWS-in 2015. 3. 26. 14:33

날짜 계산하는 함수들이 많다.
최소의 코딩으로 하는 방식을 스스로 찾아야 할 것 같다.

--This method will work on SQL server 2005 and above.
DECLARE @year AS INT
SET @year=2012
SELECT DATEPART(dy,(DATEADD(YEAR,@year-1899,0)-1))
AS [TOTAL NO OF DAYS]
GO

 
--This technique will work in SQL Server 2012 and above.
DECLARE @year AS INT
SET @year=2012
SELECT DATEPART(dy,DATEFROMPARTS(@Year,12,31))
AS [TOTAL NO OF DAYS]
go

DECLARE @year AS INT
SET @year=2012
SELECT DATEPART(dy,DATEFROMPARTS(@Year,03,26))
AS [TOTAL NO OF DAYS]
go


막 코딩할때는 아래 처럼 하기는 하나, 약간 샘이 틀려진다.
주의 해서 날짜 계산을 해야 할것 같다.

SELECT DateDiff(d, '2015-01-01', getdate())
SELECT DateDiff(d, getdate()-1, getdate())

 

[참고문서]
http://blog.sqlauthority.com/2015/03/21/sql-server-trivia-days-in-a-year/