SYSDATEは現在のシステム日付を返すSQL関数である。
oracle,MySQL:OK
PostgreSQL、SQL Server:NG
SELECT SYSDATE FROM DUAL;
SELECT TRUNC(SYSDATE, 'MM') AS 今月1日 FROM DUAL;
SELECT SYSDATE AS 今日 FROM DUAL;
SELECT LAST_DAY(SYSDATE) AS 今月末 FROM DUAL;
SELECT ADD_MONTHS(SYSDATE, 1) AS 来月 FROM DUAL;
SELECT ADD_MONTHS(SYSDATE, -1) AS 先月 FROM DUAL;
SYSDATE の高精度版 + タイムゾーン
select systimestamp from dual;
Oracleで日付値や現在時刻を文字列にフォーマット(変換)
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM dual WHERE ROWNUM = 1;
2024/07/10 14:49:21
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') FROM dual WHERE ROWNUM = 1;
20240710_144930
取得的时间和本地时间不一致。
可以指定时区,得到本地所在区域的时间。
SELECT CURRENT_TIMESTAMP FROM dual; -- 24-08-01 16:28:10.599657000 ASIA/TOKYO
SELECT TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'Asia/Tokyo', 'YYYY/MM/DD HH24:MI:SS') FROM dual; --2024/08/01 16:28:24