本以为执行alter session set nls_date_format='yyyy-mm-dd'后该回话就会以‘yyyy-mm-dd’,原来只是sql语句输入的格式是'yyyy-mm-dd',在使用PLSQL Developer时,输出的结果为‘2008-10-9 上午 09:54:45’,所以使用group by 时,本来想一日地分组,但实际是:
1 2008-10-9 上午 09:54:45 1
2 2008-10-9 上午 10:24:22 1
3 2008-10-8 下午 04:12:43 1
4 2008-10-8 下午 05:28:21 1这样,-_-;
请问这是怎么会事呢~~~

解决方案 »

  1.   

    如果要想统一的话,不妨在Oracle客户端的注册表里修改一下,使之完全统一。   在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_DATE_FORMAT,则“新建”->“字符串”,重命名为“NLS_DATE_FORMAT”,赋值为:“YYYY-MM-DD”。  
      

  2.   

    group by trunc(日期字段)你改的那个跟你的需求没有关系...
      

  3.   

    SELECT * FROM TABLE1 GROUP BY TO_CHAR(DATE1,'YYYYMMDD')
      

  4.   

    要按日期分组的话,不一定要改参数设置吧,很多日期转化的方法啊。去网上搜搜trunc函数吧!