我总是在ORACLE SQL查询中与日期格式混淆,并将时间聚在一起到google,有人可以在数据库表中使用不同的日期格式来解释我最简单的方法吗?
例如我有一个ES_DATE的日期列,将数据保存为具有本地时区的数据类型TIMESTAMP(6)的27-APR-12 11.52.48.294030000 AM.
我写了简单的选择查询来获取那个特定的日子的数据,并且没有返回任何东西.有人可以解释我吗
select * from table where es_date=TO_DATE('27-APR-12','dd-MON-yy')
要么
select * from table where es_date = '27-APR-12';
to_date()在00:00:00返回一个日期,所以你需要从你比较的日期“删除”分钟:
原文链接:/oracle/205522.htmlselect * from table where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')
你可能想在trunc(es_date)上创建一个索引,如果这是你正在做的事情.
如果默认日期格式更改为任何不同,文字’27 -APR-12’可能会非常容易地失败.所以确保你总是使用适当的格式掩码(或ANSI文字:date’2012-04-27′)的to_date()
虽然您使用to_date()并没有依赖于隐含的数据类型转换,但由于格式为’dd-MON-yy’,您对to_date()的使用仍然会有一个微妙的陷阱.
使用不同的语言设置,这可能容易失败,例如当NLS_LANG设置为德国时,TO_DATE(’27-MAY-12′,’dd-MON-yy’).避免使用不同语言可能不同的格式的任何内容.使用四位数年份,仅使用数字. ‘dd-mm-yyyy’或’yyyy-mm-dd’