Получить строки, имеющие дату и время меньше или равные сегодняшнему, игнорируя время - PullRequest
0 голосов
/ 17 июня 2019

У меня есть поле даты и времени, и я хотел бы выбрать записи, имеющие дату, меньшую или равную сегодняшней, но игнорирующую временную часть.

Мое поле даты и времени указано ниже:

2019-05-17 13:31:15.900, 2019-05-16 13:32:17.277, 2019-05-24 15:20:03.823

Я хотел бы получить только строки с датой и временем 2019-05-17 13:31:15.900 и 2019-05-16 13:32:17.277, игнорируя часть времени.

Есть идеи, как это сделать на сервере sql?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Просто приведите оба столбца и текущую дату к DATE:

SELECT * FROM MyTable
WHERE CAST(dt AS DATE) <= CAST(GETDATE() AS DATE)
0 голосов
/ 17 июня 2019

Вы можете попробовать привести GETDATE() к типу даты, чтобы сравнить его с завтрашним днем ​​в полночь:

SELECT *
FROM yourTable
WHERE dt < CAST(DATEADD(day, 1, GETDATE()) AS date);
-- earlier than tomorrow at midnight

Дата, когда был написан этот ответ, была 17 июня 2019 года, поэтому приведенный выше запрос будетвернуть любую запись, дата / время которой строго меньше , чем 18 июня 2019 года в полночь.Поэтому последняя запись будет «2019-06-17 23:59:59».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...