Выберите дату без времени (SQL Server (+)

Я хотел бы получить дату минус 1 год, но без записи времени.

Следующий запрос

SELECT DATEADD(year, -1, GETDATE())

Вывод:

2015-03-30 10:48:04.220

Я хочу 2015-03-30 00:00:00:000

Похожий на:

(DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0))

Результат: 2016-03-30 00:00:00.000

Как правильно или проще всего это сделать?


person Rik    schedule 30.03.2016    source источник
comment
почему бы не использовать CAST (поле AS DATE)?   -  person Chanom First    schedule 30.03.2016
comment
Я хочу 2015-03-30 00:00:00:000. Странно, но похоже, что это довольно точное представление о полуночи. Вам нужно время дня или просто date?   -  person HABO    schedule 30.03.2016


Ответы (1)


В SQL Server 2008 и выше необходимо выполнить преобразование на сегодняшний день:

SELECT CONVERT(date, (DATEADD(year, -1, GETDATE())))

В более старых версиях вы можете сделать следующее:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(year, -1, GETDATE())))
person Mithrandir    schedule 30.03.2016