SAK 図書館
SQL 日付関数 - システム日付、日付の差、日付の加算、次の曜日、月末日
Oracle 固有の部分があるかもしれません。SQL-Server、MDB では注意のこと。 ■システム日付、システム時間 ・sysdate() 関数は、システム日付(Oracle サーバ日付) を返す。 この例では、データベースサーバのシステム日付を 2001.06.20 15:12:00 の形式で返します。 尚、NT ネットワークでは、サーバ日付にクライアント日付をログイン時に 合わす機能を使うと良いです。 クライアントの日付取得は、VB6 では、 format(now, "yyyy.mm.dd hh:mm:ss") のようにします。 select to_char(sysdate, 'yyyy.mm.dd hh24:mi:ss') now from dual ; ■日付の差 (日付間隔、日付範囲) ・months_between() 関数は、日付の差が何ヶ月か返します。 月の端数は小数点以下として返ります。 (日付計算、日数計算、カレンダー計算) select 品番, months_between(sysdate, 受注日) from sak.受注m order by 品番 ; ■日付の加算 ・add_months() 関数は、日付を加算して返します。 次の例では、2 ヶ月後の日付を問い合わています。 (日付計算、日数計算、カレンダー計算) select add_months(sysdate, 2) from dual ; ■次の曜日 ・next_day() 関数は、次の指定曜日に対する日を返します。 次の例では、次の月曜が何日かを問い合わています。 (日付計算、日数計算、カレンダー計算、曜日算出) select next_day(sysdate, '月') from dual ; ■月末日 ・last_day() 関数は、月末日を返します。 (日付計算、日数計算、カレンダー計算、月の日数、月の最終日) select last_day(sysdate) from dual ; ■日付型へ変換(書式変換、日付変換) ・to_date() 関数は、文字日付を日付型に変換します。 時間部分は、HH24:MI:SS 等の書式を使います。 select to_date('20010712', 'YYYYMMDD') from dual ; select to_date('2001.07.12', 'YYYY.MM.DD') from dual ; select to_date('010712', 'RRMMDD') from dual ; select to_date('01/07/12', 'RR/MM/DD') from dual ; ・5 日後を計算するなら、次のようにします。 select to_date('2001.07.12', 'YYYY.MM.DD') + 5 from dual ; ・5 日後を計算して文字型にするなら、次のようにします。 select to_char(to_date('20010712', 'YYYYMMDD') + 5, 'yyyy/mm/dd') from dual ; select to_char(to_date('2001.07.12', 'YYYY.MM.DD') + 5, 'yyyy.mm.dd') from dual ; select to_char(to_date('01/07/12', 'RR/MM/DD') + 5, 'rr/mm/dd') from dual ; ・元もとが日付型なら、次のようになります。 select to_char(sysdate + 5, 'yyyy/mm/dd') from dual ; ■型変換 ・cast() 関数は、ANSI 規程の変換関数です。 SQL-Server の convert() 関数は、Oracle では、to_char()、to_number()、 to_date() に相当します。 select 品番, cast(受注数 as varchar2(20)) from sak.受注m order by 品番 ; select cast('99-01-01' as date) from dual; ■ちょっとしたサンプル ・改訂日が文字型なら update テーブル名 set 改訂日 = '1999-' || substr(改訂日, 6, 5) where 改訂日 like '2099%' ; ・改訂日が日付型なら update テーブル名 set 改訂日 = to_date('1999' || to_char(改訂日, 'mmdd'), 'yyyymmdd') where to_char(改訂日, 'yyyy') = '2099' ; ■SQL 基礎実地編資料
■SQL 基礎編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料