我在sqlplus和sqldeveloper中得到了不同的count(*)输出。数据库是Oracle 11G。
SQL开发人员
从表1中选择count(*),其中web_ck_d=to_char(sysdate-1,'DD-MON-YY');计数(*)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的原因。请帮忙。
当您使用自定义日期格式时,如果oracle觉得不合适,它将在会话中查找默认日期格式。
Sql开发人员有自己的会话,sqlplus也有自己的。Sql开发人员的日期格式在NLS日期参数中指定,您可以从: Tools > Preferences > Database > NLS
中进行检查。
您可以使用以下查询在sqlplus中检查日期
select sysdate from dual;
您可以设置所需的日期格式如下:
alter session set NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF';
你可以在这里使用你想要的格式。