2017-08-08 159 views
0

我在網上搜索了很多並且找不到它。我發現正好相反 - 日一天在SQL Server中將日期編號轉換爲完整日期

例如:天221 ==> 2017年9月8日

該查詢將從這個日期天數時做到:

SELECT DATEPART(DAYOFYEAR, SYSDATETIME()) 

SELECT DATEDIFF(day, CAST(DATEPART(YEAR, GETDATE()) AS CHAR(4)) + '-01-01', GETDATE() + 1) AS number_of_today 

感謝

+0

您的參考點是什麼?什麼日子?進入新的一年的日子? –

+0

今年?不是? – Gold

+0

這是特定的一年嗎?直到什麼日期?今天? –

回答

2

另一個選擇是DateFromParts()和GETDATE()本年度

示例

Select DateAdd(DAY,221,DateFromParts(Year(GetDate())-1,12,31)) 

返回

2017-08-09 
0

這會給你的日期,因爲它涉及到1900年1月1日:

SELECT 
    dateadd(day, dayToConvert, 0) 
FROM 
    myTable 

我想你可以改變它通過對基地起飛1月1日,2017年:

SELECT 
    dateadd(day, dayToConvert, '2016-12-31') 
FROM 
    myTable 

這是12月31日,因爲要添加許多天的日期在第三論據。

0

存儲過程選項:

CREATE PROCEDURE PROC_NUM_TO_DATE @NUM INT,@DATESTART DATE AS 
BEGIN 
SELECT DATEADD(DAY,@NUM ,DATEADD(Day,-1,@DATESTART)) 
END 
GO 

EXECUTE:

EXEC PROC_NUM_TO_DATE 221,'2017-01-01' 

結果:

2017-08-09