SQL 上的日期系统

date system on SQL

我只是编写一些数据库包含数据的查询"id and date"

003 18/01/1994
004 30/10/2007
005 31/08/1991

我运行查询

select id from table where  (date >= #31/01/2017#)

结果只显示id 005 如果我 运行

select id from table where  (date <= #31/01/2017#)

结果是 id 003 和 004,我认为这是正确的查询,为什么 id 5 没有出现,而是在运算符 >= 时出现?谁能帮我?怎么了?

您真的希望日期 August 31, 1991January 31, 2017 晚 吗?问题是您实际上并没有在数字上比较日期,而是在比较字符串。您应该以 yyyy-mm-dd 的形式存储您的日期信息,如下所示:

003 1994/01/18
004 2007/10/30
005 1991/08/31

现在,如果您 运行 您的第一个查询:

select id from table where date >= #2017/01/31#

你会得到空集,如果你运行第二个查询

select id from table where date <= #2017/01/31#

你应该取回所有记录。