SQL return 特定日期或之后的行

SQL return rows on or after an specific date

我正在尝试导出有效期在 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'

但是,它仍然 returns 其他条目,但不确定为什么

查询应该按照您希望的方式工作。问题可能是由于某种原因到期列不是 Date 类型引起的。这可能会导致不良行为。

假设您正在使用 SQL 服务器:

SELECT name, expiry
FROM tmp
WHERE expiry < GETDATE()
AND expiry >= CONVERT(DATE, '2019-01-01', 102) 

dbfiddle