我在sql where子句中有以下内容.这是针对Oracle数据库运行的. sc_dt字段在db中定义为日期字段.
sc_dt = TO_DATE('2011-11-03 00:00:00.0','YYYY-MM-DD')
当我尝试使用以下内容考虑小数秒(在这种情况下为.0)时,我收到以下错误.
sc_dt = TO_DATE('2011-11-03 00:00:00.0','YYYY-MM-DD HH24:MI:SS.FF')
产生以下错误“日期格式无法识别”
我真的只是假设我需要.FF来解释“from”字符串中的.0.我也尝试了.FF1,.FF2,…,.FF9,结果相同(此时我正抓住稻草).
据我所知,sc_dt字段始终填充了月/日/年部分(而不是小时/分钟/秒部分).
我正在调试一个java程序,它正在执行上面的sql作为带有2011-11-03 00:00:00.0值的预准备语句.
我怎么能绕过这个?
解决方法
您需要使用午夜过后的秒数选项.就像是:
select TO_DATE('2011-11-03 00:00:01.1','YYYY-MM-DD HH24:MI:SS.SSSSS') from dual
或这个:
select TO_TIMESTAMP('2011-11-03 00:00:00.1','YYYY-MM-DD HH24:MI:SS.FF') from dual