Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询未执行(希望在表达式右侧获取sysdate)_Sql_Oracle11g - Fatal编程技术网

Sql 查询未执行(希望在表达式右侧获取sysdate)

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列实际上是一个日期列,那么就不需要将日期作为字符串进行

我有一个日期列,其类型为日期,值的格式为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列实际上是一个日期列,那么就不需要将日期作为字符串进行比较。事实上,这可能是问题的根源

此外,对于这个简单的表达式,不需要从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')