在yyyymmdd格式的SQL服务器中添加日期

时间:2016-11-10 09:13:51

标签: sql sql-server

我在yyyymmdd格式的变量中有一个硬编码日期

DECLARE @StartDate = 20160101;

现在我想在这个日期添加365天。

当我这样做20160101 + 365时,它输出错误输出20160466,它应该在我添加365天之后给出答案,我认为是20160102

请告诉我如何在DECLARE变量的SQL服务器中执行此操作?我希望以yyyymmdd格式输出

谢谢,

艾登

4 个答案:

答案 0 :(得分:3)

DECLARE @StartDate INT = '20161117';
select convert(varchar,CONVERT(datetime,convert(char(8),@StartDate))+365,112)

答案 1 :(得分:1)

将日期放在引号中,然后使用DATEADD

DECLARE @StartDate = '2016-01-01';

SELECT DATEADD (day, 365, @StartDate)
FROM yourTable

答案 2 :(得分:1)

DECLARE @Date DATE= '20160101'SELECT DATEADD(DAY,365,@Date)

FOR INT DATA TYPE :
DECLARE @Date INT = '20160101'
SELECT DATEADD(DAY,365,CONVERT (DATETIME,CONVERT(CHAR(8),@Date))) 

答案 3 :(得分:-1)

DECLARE @StartDate INT = 20161117;

select cast(将(varchar,cast(@StartDate as varchar)as datetime)+366,112)转换为INT)