データベース - SQL 関数 - 日時演算

クラウディア 
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
ハイスピードプラン