在 SQL 查询中比较日期

Posted

技术标签:

【中文标题】在 SQL 查询中比较日期【英文标题】:compare dates in SQL query 【发布时间】:2015-06-30 16:53:34 【问题描述】:

我想将今天的日期与我从数据库中提取的日期进行比较,并相应地选择条目。这两种格式不匹配(我假设是这样),我得到一个错误。顺便说一句,我不确定 myDate 存储的确切格式。下面是我基本上想要实现的。

WHERE (myDate > CURDATE())

【问题讨论】:

尝试只返回整个数据集(没有任何 WHERE 子句)与这两个值并排。它可能会让您更好地了解问题所在:SELECT mydate, CURDATE() as CurdateFn FROM ... 您可以发布您收到的错误消息吗? 【参考方案1】:

您可以将两个日期格式化如下。

select * from mytable where convert(char(8), myDate,112) > convert(char(8),myDate,112)

代码 112 会将它们转换为 YYYYMMDD 格式

【讨论】:

谢谢你们的意见,伙计们。 我尝试了所有这些,但无济于事。我得到“WHERE 子句中的错误”,没有具体内容.. @mvaitkus 你能输入你正在执行的整个查询吗? 下面是我目前使用的那行代码:(ITEM.DUE_DATE >= d '2015-07-01')。如果我用(ITEM.DUE_DATE >= CURDATE()) 替换它,它不会。或者也许我没有正确使用它.. 我收到错误消息说我的日期格式应该是 yyyy-mm-dd。但我尝试了一切来转换它..【参考方案2】:

select * from mytable where 转换(日期,我的日期)> 转换(日期,我的日期)

在 sql 服务器中。

或者,如果这不起作用,请尝试使用子字符串格式化日期,然后转换/转换/解析。

从我的表中选择转换(日期,(子字符串(myfield,9,2)+'/'+子字符串(myfield,6,2)+'/'+子字符串(myfield,1,4)))

【讨论】:

以上是关于在 SQL 查询中比较日期的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中怎样比较两个日期的大小???

sqlserver 中 怎么用比较日期进行查询?

sql语句中日期时间类型怎么比较

SQL 中怎么根据出生日期算出年龄 然后用年龄查询

如何在 EF 查询中执行日期比较?

具有动态日期比较的 JCR SQL2 查询