Sql 仅从日期时间字段提取日期和小时
我正在运行Sql 仅从日期时间字段提取日期和小时,sql,sql-server,tsql,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008 R2,我正在运行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
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
您可以使用
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
工作原理:
1970-01-01
1970-01-01
使用
SQL Server 2012+
最简单的方法是使用:
您可以使用
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
工作原理:
1970-01-01
1970-01-01
使用
SQL Server 2012+
最简单的方法是使用:
为什么要除以3600*3600?@FartStopper添加了解释为什么要除以3600*3600?@FartStopper添加了解释