SQL Server: поиск между датами в строковом типе данных - PullRequest
0 голосов
/ 05 июля 2019

У меня есть таблица с датами типа varchar.

В операторе SELECT я хочу извлечь ВСЕ значения таблицы, но отфильтровать данные BETWEEN по двум датам.

Я пытался конвертировать, и это самое близкое, что я получил. любая помощь будет оценена. Даты, по которым я хочу фильтровать, называются открытыми

SELECT * 
FROM table 
WHERE Opened BETWEEN CONVERT(DATETIME, '01/08/2006', 103) 
                 AND CONVERT(DATETIME, '01/05/2020', 103)

1 Ответ

0 голосов
/ 05 июля 2019

Я бы не рекомендовал вам использовать between с датами. Здесь - хорошее объяснение, предоставленное Аароном Бертраном.

select t.*
from table t
where t.opened >= '2016-08-01' and
      t.opened < '2020-05-02'

Если ваш opened в том же формате даты, тогда используйте:

select t.*
from table t
where convert(date, t.opened, 103) >= '2016-08-01' and
      convert(date, t.opened, 103) < '2020-05-02'

Однако вам следует исправить таблицу, чтобы даты сохранялись с использованием правильных типов, а не строк.

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