各データベースのSQLでシステム日付を取得する方法と日付項目を整形する方法をまとめます。
対象データベースは以下です。
- Oracle
- SQLServer
- PostgreSQL
- MySQL
早見表:システム日付取得・日付整形
DB | システム日付取得 | 日付フォーマット (YYYY/MM/DD hh:mm:ss) | 備考 |
---|---|---|---|
Oracle | sysdate | to_char(sysdate,’HH24:MI:SS’) | |
SQLServer | getdate() | format(getdate(),’yyyy/MM/dd HH:mm:ss’) | sysdatetime()の方が精度が高い |
PostgreSQL | CURRENT_TIMESTAMP | to_char(current_timestamp, ‘YYYY/MM/DD HH24:MI:SS’) | |
MySQL | now() | DATE_FORMAT(now(), ‘%Y%/m/%d %H:%i:%s’) |
Oracle
-- システム日付取得、日付整形 -- from dualでSQLを試すことができる select SYSDATE,TO_CHAR(SYSDATE,'HH24:MI:SS') from dual
Oracleドキュメント:SYSDATE
SQL言語リファレンス
Oracleドキュメント:TO_CHAR(日時)
SQL言語リファレンス
SQLServer
-- システム日付取得、日付整形 -- from句省略でSQLを試すことができる select GETDATE(),FORMAT(GETDATE(),'yyyy/MM/dd HH:mm:ss')
SQLServerドキュメント:GETDATE
GETDATE (Transact-SQL) - SQL Server
GETDATE 関数の Transact-SQL リファレンス。datetime 値として現在のデータベース システム時刻を返します。
SQLServerドキュメント:SYSDATETIME
SYSDATETIME (Transact-SQL) - SQL Server
SYSDATETIME (Transact-SQL)
SQLServerドキュメント:FORMAT
FORMAT (Transact-SQL) - SQL Server
FORMAT 関数は、指定した書式と省略可能なカルチャで書式設定された値を返します。
PostgreSQL
-- システム日付取得、日付整形 -- from句省略でSQLを試すことができる select current_timestamp, to_char(current_timestamp, 'YYYY/MM/DD HH24:MI:SS')
PostgreSQL 9.2.4ドキュメント:日付/時刻関数と演算子
日付/時刻関数と演算子
PostgreSQL 9.2.4ドキュメント:データ型書式設定関数
データ型書式設定関数
MySQL
-- システム日付取得、日付整形 -- from句省略でSQLを試すことができる。from dualも記述可。 select now(), date_format(now(), '%Y%/m/%d %H:%i:%s')
MySQL 5.6 リファレンスマニュアル:NOW()
MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.7 日付および時間関数
MySQL 5.6 リファレンスマニュアル:DATE_FORMAT
MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.7 日付および時間関数