2016-03-30 4 views
1

Я хотел бы получить дату минус 1 год, но без времени записиВыбрать дату без времени (SQL Server (+)

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

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

Что является правильным или простым способом сделать это?

+0

почему не использовать CAST (поле AS DATE)? –

+0

«Я хочу« 2015-03-30 00: 00: 00: 000 ». Странно, но похоже, что это включает довольно точное представление полуночи. Вы хотите время суток или просто ['date'] (https://msdn.microsoft.com/en-us/library/bb630352.aspx)? – HABO

ответ

1

В SQL Server 2008 и выше, вы должны преобразовать в дату:

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

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

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(year, -1, GETDATE()))) 
Смежные вопросы