在 SQL Server 2005 上,我想创建一个表示我的任务开始的时间。我的日期时间是“2010-10-01 12:30:00.000”,这是实际的开始时间。我想结束的是“12:00”,这是任务开始的时间。关于如何放松“30”分钟的任何好主意?
问问题
63 次
3 回答
0
如果您只是想从日期时间值中消除分钟/秒/毫秒,但将其保留为日期时间,请使用DATEADD
/ DATEDIFF
:
select DATEADD(hour,DATEDIFF(hour,0,`2010-10-01T12:30:00`),0)
哪个会返回2010-10-01T12:00:00
。
于 2011-09-27T13:40:50.037 回答
0
这将做你想要的:
SELECT DATEADD(hh, DATEDIFF(hh, '20000101', [DateField]), '20000101')
于 2011-09-27T13:42:46.340 回答
0
declare @dt datetime
set @dt = '2010-10-01 12:30:00.000'
select convert(char(5), dateadd(hour, datediff(hour, 0, @dt), 0), 108)
结果:
12:00
作为日期时间
declare @dt datetime
set @dt = '2010-10-01 12:30:00.000'
select dateadd(hour, datediff(hour, 0, @dt), 0)
结果:
2010-10-01 12:00:00.000
于 2011-09-27T13:47:41.550 回答