Oracle SQL 関数 : SYSDATE : システム日付の取得
dateRet := SYSDATE;
SYSDATEはシステム日付をDATE型のデータとして返します。
SQL> SELECT SYSDATE FROM DUAL; |
DUAL テーブルがいきなり出てきましたが、
このテーブルはダミーテーブルで
FROM句 が必要無いSQL文の場合に仮のテーブルとして使用します。
(SQL-Server では
FROM句 を書く必要は無かったりで各種DBによります)
Oracle では
FROM句 が必須の様なのでダミーテーブルを記述します。
この
DUAL テーブルは各種のSQL関数(ユーザ関数)の確認等に使ったりします。
以下の例は
SUBSTR 関数による文字列の切出しを確認しています。
SQL> SELECT SUBSTR( '0123456789' , 1, 5) SUBSTRTEST FROM DUAL; |
TO_CHAR 関数を使うことでシステム日付を文字列型に変換できます。
2 TO_CHAR(SYSDATE, 'YYYY/MM/DD' ) SYSDATE1 |
3 , TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS' ) SYSDATE2 FROM DUAL; |
2020/05/15 2020/05/15 10:31:46 |
DATE型 は日付データを整数部に、時刻データを小数部に持っていますので、整数値を加減算することで日付を加減算できます。
以下の例は
SYSDATE の結果に「+1」「-1」を行っています。
, SYSDATE + 1 AS 翌日 FROM DUAL; |
21-02-07 21-02-08 21-02-09 |
尚、
PL/SQL で以下の様に行えば1年分の結果が求められます。
SELECT TO_CHAR(SYSDATE + I, 'YYYY/MM/DD' ) INTO WORK FROM DUAL; |
DBMS_OUTPUT.PUT_LINE( 'DATE=' || WORK ); |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。