- 1. 概要
- 2. 現在日時
- 3. IBM DB2 day
- 4. 数値
1. 概要
どうも、日時の演算は、データベースのプログラムごとに異なるようなので、困ってしまう。
本ページは、下記のサイトを参考にさせていただきました。
「SYSDATE 現在の日時(日付と時刻)を返すSQL関数」
「日付/時刻関数と演算子」
「SYSDATE」
「日付の足し引き」
2. 現在日時
「SYSDATE」で、現在日時を取得します。
SELECT SYSDATE FROM DUAL;
で、現在日時を取得できます(「DUAL」に関しては、別のページに記載しています)。
下記のデータベースで使用できます(一部、参考サイトより)。
データベース | 使用 | 備考 |
DB2 | 〇 | |
MySQL | 〇 | |
Oracle | 〇 | |
PostgreSQL | | |
SQL Server | | ※ |
「〇」のついたデータベースでは、使用できます。
※ サイトによって記述がまちまちですが、現在は使えるのかもしれません。
「PostgreSQL」では、本日、現在日時、現在タイムスタンプを「CURRENT_DATE」「CURRENT_TIME」「CURRENT_TIMESTAMP」で取得します。
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
の結果は(たまたま、その日時だったわけですが)下記のようになります。
2023-03-09 | 08:21:32.399802+09 | 2023-03-09 08:21:32.399802+09
3. IBM DB2 day
「IBM DB2」で、一番使えたのが
日時型カラム ± 数値 day
です。
数値をきっかり、「24時間×日数」で換算してくれるようです。
4. 数値
前項で「数値 day」で、1日を表現していますが、基本的には、数値のみでも1を1日として扱ってくれるようです。
「IBM DB2」の環境で
SELECT SYSDATE, SYSDATE-1, SYSDATE+1 FROM DUAL;
を実行したら、下記の結果が得られました。
1 2 3
--------------------- --------------------- ---------------------
2023-05-12 09:47:05 2023-05-11 09:47:05 2023-05-13 09:47:05
|
      |