[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

 

Oracle

Posted by arkgame