使用查询中的字符串YYYYMMDD日期过滤数据

时间:2014-01-26 17:48:38

标签: sql criteria

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

WHERE dateCol BETWEEN date1 AND date2

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

1 个答案:

答案 0 :(得分:2)

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

WHERE dateCol BETWEEN '20130701' and '20130801'
但是,我确实怀疑你的意思是:

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

在没有8月1日的情况下在7月份获得所有内容。