В SQL Server у меня есть столбец DATETIME
, который включает элемент времени.
Пример:
'14 AUG 2008 14:23:019'
Что такое лучший метод только для выбора записей за определенный день, игнорируя часть времени?
Пример: (Небезопасно, так как он не соответствует временной части и не возвращает строки)
DECLARE @p_date DATETIME
SET @p_date = CONVERT( DATETIME, '14 AUG 2008', 106 )
SELECT *
FROM table1
WHERE column_datetime = @p_date
Примечание. Учитывая, что этот сайт также посвящен записи заметок и методов, которые вы забираете, а затем забываете, я собираюсь опубликовать свой собственный ответ на этот вопрос, поскольку материал DATETIME в MSSQL, вероятно, является темой, которую я больше всего ищу в SQLBOL.
Обновить Уточненный пример, чтобы быть более конкретным.
Изменить Извините, но мне приходилось отвечать на WDONG (ответы, которые возвращают неправильные результаты).
@Jorrit: WHERE (date>'20080813' AND date<'20080815')
вернет 13-й и 14-й.
@wearejimbo: Закрыть, но нет сигары! значок, присвоенный вам. Вы пропустили записи, записанные в 14/08/2008 23: 59: 001 до 23: 59: 999 (т.е. Менее 1 секунды до полуночи.)