Sql 查询未执行(希望在表达式右侧获取sysdate)
我有一个日期列,其类型为日期,值的格式为2012年8月23日,2012年2月9日。现在我正试图运行一个查询,但我得到了一个错误Sql 查询未执行(希望在表达式右侧获取sysdate),sql,oracle11g,Sql,Oracle11g,我有一个日期列,其类型为日期,值的格式为2012年8月23日,2012年2月9日。现在我正试图运行一个查询,但我得到了一个错误 ORA-01843: not a valid month 01843. 00000 - "not a valid month" *Cause: *Action: 这是问题所在。实际上,我想在first_appr_dt=当前日期的右侧获取当前日期 我做错了什么?请帮忙 谢谢如果first appr\u dt列实际上是一个日期列,那么就不需要将日期作为字符串进行
ORA-01843: not a valid month
01843. 00000 - "not a valid month"
*Cause:
*Action:
这是问题所在。实际上,我想在first_appr_dt=当前日期的右侧获取当前日期
我做错了什么?请帮忙
谢谢如果first appr\u dt列实际上是一个日期列,那么就不需要将日期作为字符串进行比较。事实上,这可能是问题的根源
此外,对于这个简单的表达式,不需要从DUAL中选择
你宁愿:
select LOSA_APP.app_ref_no AS "App.Ref.No." from losa_app LOSA_APP
where LOSA_APP.app_status = 'A' and first_appr_dt = trunc(sysdate);
请注意,查询使用TRUNC从日期中删除时间,因为您的表可能包含时间设置为00:00:00的日期。如果不是,则应尝试以下条件:
trunc(first_appr_dt) = trunc(sysdate)
如果确实要将日期作为字符串进行比较,则需要在比较的两侧使用to_CHAR:
to_char(first_appr_dt, 'DD-MON-YYYY') = to_char(sysdate, 'DD-MON-YYYY')
不,当我尝试运行查询时,现在我得到以下错误ORA-01821:日期格式无法识别01821。00000-日期格式不可识别。因此,如果我使用SELECT从dual中选择字符'23-AUG-12','DD-MMM-YY',则我会得到错误ORA-01722:无效数字01722。00000-无效数字否,即使我尝试此查询,请从DUAL中选择“DD-MOM-YY”;或者单独的妈妈,我得到的ORA-01821:date格式无法识别01821。00000-无法识别日期格式。这项工作分别从DUAL;中选择“DD-MM-YY”现在;。我觉得这个月有点不对劲嗯。。。。。。
trunc(first_appr_dt) = trunc(sysdate)
to_char(first_appr_dt, 'DD-MON-YYYY') = to_char(sysdate, 'DD-MON-YYYY')