按年,月,日获取日期时间

时间:2014-07-05 12:38:02

标签: sql sql-server-2008 tsql sql-server-2008-r2

我希望通过使用年,月和日功能获取日期。实施例

declare @Date smalldatetime
select @Date = Year('20140530') + Month('20140530') + Day('20140530')

我想要的是分配@Date =' 20140530'作为smalldatetime。但我想通过类似于上述表达的方式来做到这一点。我怎样才能做到这一点。提前谢谢。

2 个答案:

答案 0 :(得分:2)

而是尝试下面的内容

declare @Date varchar(20)
select @Date = cast(Year('20140530') as varchar) + 
cast(Month('20140530') as varchar) + 
cast(Day('20140530') as varchar)

select @Date

结果为:2014530

(或)如下

declare @Date VARCHAR(20)
select @Date = cast(Year('20140530') as varchar) + '-' +
cast(Month('20140530') as varchar) + '-' +
cast(Day('20140530') as varchar)

select cast(@Date as smalldatetime)

结果为:2014-05-30 00:00:00

Year()/Month()/DaY()函数将年/月/日返回为整数。你实际在做什么可以模拟如下

declare @Date smalldatetime
set @Date = 2049

select @Date

将导致:1905-08-12 00:00:00

答案 1 :(得分:0)

使用赞,Set会在@Date而不是select

中提供日期
declare @Date smalldatetime
set @Date = Year('20140530') + Month('20140530') + Day('20140530')
print @Date