プログラミング・ノウハウ集 〜 SQL 編 (3)

私は実はオープン系、Web系のSEをしておりまして、そのとき使用するデータベースソフトは大抵Oracleになっております。
Oracleに限らず、プログラミングで必ず出くわす難問は「日付の処理」ではないでしょうか。
そこで、ここでは、日付に関係するSQLをまとめてみました。
ここで紹介するSQLは、他のオブジェクトに関しても応用が利きそうです。そのあたりは、また見つけ次第順次ここで紹介していきます。
  1. 各国語対応
  2. 日本式の日時の表示 select to_char(sysdate,'YYYY/MM/DD DAY HH24:MI:SS') from dual; 2007/02/08 木曜日 20:51:48
    select to_char(sysdate,'YYYY/MM/DD DY HH24:MI:SS') from dual; 2007/02/08 木 20:51:48
    アメリカ式の日時の表示 select to_char(sysdate,'DAY MONTH DD,YYYY HH24:MI:SS','nls_date_language=american') from dual; THURSDAY FEBRUARY 08,2007 20:51:48
    select to_char(sysdate,'DY MON DD,YYYY HH24:MI:SS','nls_date_language=american') from dual; THU FEB 08,2007 20:51:48
    select nls_initcap(to_char(sysdate,'DAY MONTH DD,YYYY HH24:MI:SS','nls_date_language=american')) from dual; Thursday February 08,2007 20:51:48
    select nls_initcap(to_char(sysdate,'DY MON DD,YYYY HH24:MI:SS','nls_date_language=american')) from dual; Thu Feb 08,2007 20:51:48
    ※ 各国言語は、'nls_date_language='の箇所を以下のように指定するとその国の言葉に合わせて表示されます。
      (大文字・小文字は問いません。)
    言語 設定値 表示例
    表示例 (省略表示)
    日本語 japanese 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
    1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
    英語(アメリカ式) american January February March April May June July August September October November December Sunday Monday Tuesday Wednesday Thursday Friday Saturday
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Sun Mon Tue Wed Thu Fri Sat
    フランス語 french Janvier Fevrier Mars Avril Mai Juin Juillet Aout Septembre Octobre Novembre Decembre Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi
    Janv. Fevr. Mars Avr. Mai Juin Juil. Aout Sept. Oct. Nov. Dec. Dim. Lun. Mar. Mer. Jeu. Ven. Sam.
    ドイツ語 german Januar Februar Marz April Mai Juni Juli August September Oktober November Dezember Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
    Jan Feb Mrz Apr Mai Jun Jul Aug Sep Okt Nov Dez So Mo Di Mi Do Fr Sa
    イタリア語 italian Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre Domenica Lunedi Martedi Mercoledi Giovedi Venerdi Sabato
    Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic Dom Lun Mar Mer Gio Ven Sab
    スペイン語 spanish Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre Domingo Lunes Martes Miercoles Jueves Viernes Sabado
    Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic Dom Lun Mar Mie Jue Vie Sab
    ポルトガル語 portuguese Janeiro Fevereiro Marco Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Domingo Segunda-Feira Terca-Feira Quarta-Feira Quinta-Feira Sexta-Feira Sabado
    Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Dom Seg Ter Qua Qui Sex Sab
    ハングル korean
    中国語 simplified chinese 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 星期日 星期一 星期二 星期三 星期四 星期五 星期六
    1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 星期日 星期一 星期二 星期三 星期四 星期五 星期六

  3. データベースプログラムのデバッグ用
  4. SYSDATE関数で取得する日時を固定にする。 alter system set fixed_date = "YYYY-MM-DD-HH24:MI:SS";
    (例) alter system set fixed_date = "2001-02-03-16:17:18";
    SYSDATE関数で取得する日時をシステム日付に戻す。 alter system set fixed_date = none;
    ※ 上のSQLを実行するには、alter system 権限が必要。

Back「プログラミング・ノウハウ集」に戻る
Topトップページに戻る