SQL Server 2005 я хочу создать час, когда задача была запущена из даты и времени - PullRequest
0 голосов
/ 27 сентября 2011

В SQL Server 2005 я хочу создать представление о часе запуска моей задачи. У меня есть дата-время «2010-10-01 12: 30: 00.000», которое является фактическим временем начала. Я хотел бы закончить тем, что «12: 00» - это час, когда была запущена задача. Любые хорошие идеи о том, как потерять «30» минут?

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011

Это будет делать то, что вы хотите:

SELECT DATEADD(hh, DATEDIFF(hh, '20000101', [DateField]), '20000101')
0 голосов
/ 27 сентября 2011
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
0 голосов
/ 27 сентября 2011

Если вы просто хотите исключить минуты / секунды / мельницы из значения даты и времени, но сохранить его как дату и время, используйте DATEADD / DATEDIFF:

select DATEADD(hour,DATEDIFF(hour,0,`2010-10-01T12:30:00`),0)

, который вернет 2010-10-01T12:00:00.

...