我在sqlplus和sqldeveloper中获得count(*)的不同输出。 数据库是Oracle 11G。
SQL Developer
Select count(*) from table1 where web_ck_d = to_char(sysdate-1,'DD-MON-YY'); Count(*) 1083171
用sqlplus
SQL> Select count(*) from table1 where web_ck_d = to_char(sysdate-1,'DD-MON-YY');
COUNT(*)
0
该表在all_tables中有NUM_ROWS-357238869,BLOCKS-14978755,PARTITIONED-YES。
不明白为什么sqlplus会产生0。 请帮忙。
答案 0 :(得分:2)
当您使用自定义日期格式时,如果oracle找不到合适的日期格式,它将会在会话中查找默认日期格式。
Sql-developer有自己的会话,sqlplus有自己的会话。 Sql开发人员的日期格式在NLS日期参数中指定,您可以从: Tools > Preferences > Database > NLS
进行检查。
您可以使用以下查询
检查sql plus中的日期select sysdate from dual;
您可以按如下方式设置所需的日期格式:
alter session set NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF';
您可以在此处使用所需的格式。