我正在运行SQL Server 2008
并且我有一个datetime
字段,在此字段中我只想提取日期和小时。我尝试使用datepart()
进行解析,但我认为我做错了,因为当我试图将两者重新组合在一起时,我得到了一个数字值。我的尝试是
Select Datepart(YEAR, '12/30/2015 10:57:00.000') +
Datepart(HOUR, '12/30/2015 10:57:00.000')
返回的是2025
我希望看到的是
12/30/2015 10:00:00.000
答案 0 :(得分:4)
您可以使用DATEADD
和DATEDIFF
:
DECLARE @d DATETIME = '12/30/2015 10:57:00.000';
SELECT DATEADD(second,DATEDIFF(second,'1970-01-01',@d)/3600*3600 , '1970-01-01')
-- 2015-12-30 10:00:00
的 LiveDemo
强>
工作原理:
1970-01-01
1970-01-01
使用SQL Server 2012+
,方法是使用DATETIMEFROMPARTS
:
SELECT DATETIMEFROMPARTS(YEAR(@d), MONTH(@d), DAY(@d), DATEPART(HOUR, @d),0,0,0)
的 LiveDemo2
强>