Я пытаюсь экспортировать список сведений об участниках, срок действия которых истекает после 2019 года.
|name |expiry |
|------|----------|
|arthur|2010-01-01|
|ben |2018-05-17|
|craig |2005-12-30|
|dean |2021-09-02|
Так что я только после
|name |expiry |
|------|----------|
|dean |2021-09-02|
Я думал, что могу просто использовать дату в предложении WHERE
SELECT name, expiry
FROM table
WHERE expiry < GETDATE()
AND expiry >= '2019-01-01'
Однако он по-прежнему возвращает другие записи и не уверен, почему
2 ответа
Запрос должен работать так, как вы хотите. Вероятно, проблема вызвана тем, что столбец срока действия по какой-то причине не имеет типа Дата. Это может привести к нежелательному поведению.
Предполагая, что вы используете SQL Server:
SELECT name, expiry
FROM tmp
WHERE expiry < GETDATE()
AND expiry >= CONVERT(DATE, '2019-01-01', 102)
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.
'2018-05-17'
раньше, чем'2019-01-01'
... почему вы ожидаете, что в вашем выводе будет прежняя дата?