小于或等于指定日期

时间:2016-02-22 19:52:14

标签: date

我正在尝试编写查询以获取日期< =指定日期的记录。数据表的日期为DDMMMYY格式,例如。 14AUG15。

我的查询是:

create table enrol_crse as
select distinct id, count(distinct id) as count
from enrol_crse2
where term = '1159'
and enrl_add_date <= '21SEP15';

我收到错误:

  

使用小于或等于的表达式具有的组件   不同的类型。

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

您已经尝试过的查询会受到赞赏,但也许您想要这样的内容:

SELECT * FROM table1 WHERE date <= '14-AUG-15'

根据日期在表格中的显示方式更改日期格式。

答案 1 :(得分:0)

您收到该错误是因为您要比较两种不同类型的值:您正在将string与原生date类型进行比较。

要执行此比较,您必须将date与另一个date进行比较。所以:

  1. 如果您的日期列存储了string个值,会将这些值转换为表达式中的date个类型。如何执行此操作因数据库而异,但可能如下所示:... WHERE CAST(enrl_add_date AS DATE) <= some_date_value

  2. 如果您的日期列存储string值,那么您的“指定日期” - 您与该字段进行比较的值 - - 不是日期,您的数据库需要您将其显式转换为日期。与上面类似,这可能如下所示:...WHERE enrl_date_add <= CAST(some_date_value AS DATE)