Oracleで「ORA-01830: 日付書式の変換で不要なデータが含まれています」エラー

 同じSQLでも環境によって上記エラーとなる場合がある  
 下記のSQLはどの環境でも上記エラーとなる例、年月日時分秒まである日付を年月日でTO_DATEすると発生  
  select to_date(‘2015/01/01 10:00:00′,’YYYY/MM/DD’) from dual; 
 同様のことが環境とSQLにより発生する  
 ①環境変数が年月日  
 NLS_DATE_FORMAT=YYYY-MM-DD  
 select * from v$nls_parameters where parameter = ‘NLS_DATE_FORMAT’;  
  日付の確認 
  select to_char(sysdate) from dual; 
   2018-07-03
  問題なし 
  SELECT TO_CHAR(SYSDATE, ‘MM/DD’) AS CALENDAR FROM DUAL 
  問題なし 
  SELECT TO_CHAR(TO_DATE(SYSDATE, ‘yyyy-mm-dd hh24:mi:ss’), ‘MM/DD’) AS CALENDAR FROM DUAL 
 ②環境変数が年月日時分秒  
 ALTER SESSION SET NLS_DATE_FORMAT=’yyyy-mm-dd hh24:mi:ss’;  
 NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss  
  日付の確認 
  select to_char(sysdate) from dual; 
   2018-07-03 17:17:08
  問題なし 
  SELECT TO_CHAR(SYSDATE, ‘MM/DD’) AS CALENDAR FROM DUAL 
  問題なし 
  SELECT TO_CHAR(TO_DATE(SYSDATE, ‘yyyy-mm-dd hh24:mi:ss’), ‘MM/DD’) AS CALENDAR FROM DUAL 
  エラー発生 
  SELECT TO_CHAR(TO_DATE(SYSDATE, ‘yyyy-mm-dd’), ‘MM/DD’) AS CALENDAR FROM DUAL 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です