在SQL Server中将日期编号转换为完整日期
问题描述:
我在网上搜索了很多并且找不到它。我发现正好相反 - 日一天在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
感谢
答
另一个选择是DateFromParts()和GETDATE()本年度
示例
Select DateAdd(DAY,221,DateFromParts(Year(GetDate())-1,12,31))
返回
2017-08-09
答
这会给你的日期,因为它涉及到1900年1月1日:
SELECT
dateadd(day, dayToConvert, 0)
FROM
myTable
我想你可以改变它通过对基地起飞1月1日,2017年:
SELECT
dateadd(day, dayToConvert, '2016-12-31')
FROM
myTable
这是12月31日,因为要添加许多天的日期在第三论据。
答
DATEADD函数应该工作,像这样:
SELECT DATEADD(day,221,someDate) AS someDate2 FROM sometable
答
存储过程选项:
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
您的参考点是什么?什么日子?进入新的一年的日子? –
今年?不是? – Gold
这是特定的一年吗?直到什么日期?今天? –