[Oracle]update文でTIMESTAMP型の列を更新するサンプル
環境
Oracleのバージョンを確認します
SQL> SELECT * FROM v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production
使用例
1.TIMESTAMP型の列のテーブルを作成します
CREATE TABLE USERTEST ( "USERID" NUMBER(6,0), "USERNAME" VARCHAR2(20), "REGTIME" TIMESTAMP, PRIMARY KEY ("USERID") );
列「REGTIME」はTIMESTAMP型です。桁数を指定しない場合はデフォルト値の6で設定されます。
2.テストデータを作成します
SQL> INSERT INTO USERTEST VALUES(105,'YAMADA',SYSDATE); 1行が作成されました。
使用例
1.TO_TIMESTAMP関数を使用してTIMESTAMP型のカラムを更新します
更新SQL構文
UPDATE USERTEST SET REGTIME = TO_TIMESTAMP('2022/09/04 11:30:10.123', 'YYYY-MM-DD HH24:MI:SS.FF') WHERE USERID = 105;
説明
HH24: 0~23の24時間表記
MI:0~59
SS:0~59
FF 秒の小数部
SELECT結果確認
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-04 11:30:10.123000
使用例2
更新SQL構文 文字列のままを更新します
UPDATE USERTEST SET REGTIME = '2022/09/04 11:25:35.156789' WHERE USERID = 105;
SELECT結果確認
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-04 11:25:35.156789
使用例3
更新SQL構文 systimestampを指定します
UPDATE USERTEST SET REGTIME = systimestamp WHERE USERID = 105;
SELECT結果確認
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-05 20:20:03.525808