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

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

WHERE (myDate > CURDATE())

【问题讨论】:

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

标签: sql excel odbc


【解决方案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)))

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 2013-09-16
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2011-01-11
    • 2014-10-28
    • 2015-07-16
    相关资源
    最近更新 更多