Сравнение даты SQL - PullRequest
       20

Сравнение даты SQL

1 голос
/ 20 ноября 2008

Как проверить, что дата отметки времени записи до полуночи сегодня?

Датедиф сводит меня с ума ...

Ответы [ 5 ]

6 голосов
/ 20 ноября 2008

Попробуйте:

WHERE dtColumn < DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
1 голос
/ 20 ноября 2008

Вот как получить 0 часов сегодняшнего дня в SQL

SELECT (CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime))

Просто сравните свое время с этим.

Не используйте броски Варшара, потому что они медленные.

Проверьте этот список для получения дополнительной информации о времени и дате.

0 голосов
/ 21 ноября 2008

Если ColumnName (столбец, который вы исследуете) имеет тип данных datetime, а НЕ timestamp, тогда самый быстрый подход -

Select Case DateDiff(day, columnName, getDate()) 
   When 0 Then 'Today' Else 'Earlier' End
From TableName

при условии, что все значения дат в столбце ColumnName сейчас или раньше ...

Самый простой способ думать о датированном значении состоит в том, что он подсчитывает количество «границ» указанного типа, которые вам нужно передать, чтобы перейти от одной даты к другой ...

0 голосов
/ 20 ноября 2008

Вы имеете в виду, что тип данных столбца, который вы использовали, является "TimeStamp", а не dateTime или smalldatetime?

Если так, то вам не повезло. Этот тип данных не имеет ничего общего с датами или временем (он действительно вводит в заблуждение ...) Он просто гарантированно хронологически уникален и последовательн ... Но нет никакого способа сравнить его с датой и временем

http://msdn.microsoft.com/en-us/library/aa260631(SQL.80).aspx

http://www.sqlteam.com/article/timestamps-vs-datetime-data-types

0 голосов
/ 20 ноября 2008

Попробуйте это:

where myColumn < cast( (cast(getdate() - 0.5 as int)) as datetime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...