我在网上搜索了很多,却找不到它。我发现恰恰相反 - 日期至今
例如:第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 :(得分:3)
另一种选择是使用当年的DateFromParts()和GetDate()
示例强>
Select DateAdd(DAY,221,DateFromParts(Year(GetDate())-1,12,31))
<强>返回强>
2017-08-09
答案 1 :(得分:0)
这将为您提供与1900年1月1日相关的日期:
SELECT
dateadd(day, dayToConvert, 0)
FROM
myTable
我认为您可以将其更改为2017年1月1日之前:
SELECT
dateadd(day, dayToConvert, '2016-12-31')
FROM
myTable
这是12月31日,因为你想在第三个参数中添加那么多天。
答案 2 :(得分:0)
DATEADD函数应该可以正常工作:
SELECT DATEADD(day,221,someDate) AS someDate2 FROM sometable
答案 3 :(得分: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