Использование типа данных Date для удаления информации о времени из GetDate () нормально? - PullRequest
1 голос
/ 27 апреля 2011

Обычно мне нужно удалить информацию о времени из GETDATE(). Мне это нужно, потому что у меня есть несколько полей DateTime, где я знаю, что храню только информацию о дате, поэтому для надежного сравнения (MyDate < GETDATE()) мне нужно удалить информацию о времени из GETDATE()). Конечно, я могу использовать тип данных DATE в MyDate, но это нормально для новых приложений, а не для старых.

Раньше я делал это с CAST, но, поскольку в SQL Server 2008 также есть тип данных DATE, он кажется более читабельным.

Старый подход

DECLARE @Today DateTime
SET @Today =  (CAST(FLOOR(CAST( GETDATE() AS FLOAT)) AS DATETIME))
select @Today

Новый подход

DECLARE @TodayDate Date
Set @TodayDate = GETDATE()
select @TodayDate

Могу ли я пойти со вторым или есть какие-то предостережения? (из coruse я использую только 2008!)

1 Ответ

1 голос
/ 27 апреля 2011
...