【问题标题】:Filtering data using string YYYYMMDD date in query在查询中使用字符串 YYYYMMDD 日期过滤数据
【发布时间】:2014-01-26 17:48:37
【问题描述】:

下面的WHERE子句用于过滤使用BETWEEN关键字的数据。

WHERE dateCol BETWEEN date1 AND date2

但该表包含数据类型为CHARACTER 的列,其中存储日期如20130407 (YYYYMMDD)。由于特权,我无法更改列的数据类型,并且它已经存在并正在使用中。现在我需要过滤两个日期之间的数据,例如20130701 和20130801。我不能使用BETWEEN,因为该列不是DATE 类型。可能是使用IN 标准是另一种选择,但它使查询非常冗长且不是动态的。有人可以建议如何在两个日期之间进行过滤吗?

【问题讨论】:

  • 这是ms sql还是mysql?

标签: sql criteria


【解决方案1】:

只需使用相同的格式进行比较:

WHERE dateCol BETWEEN '20130701' and '20130801'

不过,我确实怀疑你的意思是:

WHERE dateCol >= '20130701' and
      dateCol < '20130801'

在没有 8 月 1 日的情况下在 7 月获得一切。

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多