Сравнение даты и получения результатов записей с дальнейшими датами

-6

Я использую sql для подключения к базе данных. Я фильтрую записи в базе данных по дате, используя sql-запрос, который состоит из функции convert(varchar(100),column name,106). Я сравниваю его с датой, имеющей формат dd/MMM/yyyy. В результате я получаю записи о следующих всех датах.

Пример. Если я попытаюсь отфильтровать таблицу к 01/июня /2017, то, несмотря на записи этой даты, я получаю записи о следующих всех датах. Я не могу получить записи 01/июня /2017.

Я использовал выражение больше или равно.

спросил(а) 2017-05-29T17:58:00+03:00 3 года, 6 месяцев назад
0
117

Лучше преобразовать его в этот формат номера yyyymmdd и выполнить сравнение, как показано ниже:

select convert(int,convert(varchar(10),[your column],112))

20170529

ответил(а) 2017-05-29T18:07:00+03:00 3 года, 6 месяцев назад
42

Не делайте преобразования своих дат в любом формате (= строки) при сравнении. Всегда используйте формат даты (или даты и времени и т.д.). Таким образом, вы будете сравнивать фактические значения, а не строковое или числовое сравнение. Здесь проблема заключается в том, что формат 106 является dd mon yyyy поэтому он никогда не будет соответствовать вашей дате, потому что это строка dd/MMM/yyyy но вы будете получать любые даты, начиная с 02 любом случае, например 02/Jan/1990, потому что в алфавитном порядке который наступит после вашей даты.

ответил(а) 2017-05-29T19:10:00+03:00 3 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема