在 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 查询中比较日期的主要内容,如果未能解决你的问题,请参考以下文章