[Oracle]update文でTIMESTAMP型の列を更新するサンプル

環境
Oracleのバージョンを確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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型の列のテーブルを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE USERTEST
( "USERID" NUMBER(6,0),
"USERNAME" VARCHAR2(20),
"REGTIME" TIMESTAMP,
PRIMARY KEY ("USERID")
);
CREATE TABLE USERTEST ( "USERID" NUMBER(6,0), "USERNAME" VARCHAR2(20), "REGTIME" TIMESTAMP, PRIMARY KEY ("USERID") );
CREATE TABLE USERTEST
( "USERID"   NUMBER(6,0), 
  "USERNAME"  VARCHAR2(20), 
  "REGTIME" TIMESTAMP,  
  PRIMARY KEY ("USERID")
);

列「REGTIME」はTIMESTAMP型です。桁数を指定しない場合はデフォルト値の6で設定されます。

2.テストデータを作成します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> INSERT INTO USERTEST VALUES(105,'YAMADA',SYSDATE);
1行が作成されました。
SQL> INSERT INTO USERTEST VALUES(105,'YAMADA',SYSDATE); 1行が作成されました。
SQL> INSERT INTO USERTEST VALUES(105,'YAMADA',SYSDATE);

1行が作成されました。

使用例
1.TO_TIMESTAMP関数を使用してTIMESTAMP型のカラムを更新します
更新SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
UPDATE USERTEST
SET REGTIME = TO_TIMESTAMP('2022/09/04 11:30:10.123', 'YYYY-MM-DD HH24:MI:SS.FF')
WHERE USERID = 105;
UPDATE USERTEST SET REGTIME = TO_TIMESTAMP('2022/09/04 11:30:10.123', 'YYYY-MM-DD HH24:MI:SS.FF') WHERE USERID = 105;
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結果確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105;
REGTIME
---------------------------------------------------------------------------
22-09-04 11:30:10.123000
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-04 11:30:10.123000
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105;

REGTIME
---------------------------------------------------------------------------
22-09-04 11:30:10.123000

使用例2
更新SQL構文 文字列のままを更新します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
UPDATE USERTEST
SET REGTIME = '2022/09/04 11:25:35.156789'
WHERE USERID = 105;
UPDATE USERTEST SET REGTIME = '2022/09/04 11:25:35.156789' WHERE USERID = 105;
UPDATE USERTEST
SET REGTIME = '2022/09/04 11:25:35.156789'
WHERE USERID = 105;

SELECT結果確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105;
REGTIME
---------------------------------------------------------------------------
22-09-04 11:25:35.156789
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-04 11:25:35.156789
SQL>  SElECT REGTIME FROM USERTEST WHERE USERID = 105;

REGTIME
---------------------------------------------------------------------------
22-09-04 11:25:35.156789

使用例3
更新SQL構文 systimestampを指定します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
UPDATE USERTEST
SET REGTIME = systimestamp
WHERE USERID = 105;
UPDATE USERTEST SET REGTIME = systimestamp WHERE USERID = 105;
UPDATE USERTEST
SET REGTIME  = systimestamp
WHERE USERID = 105;

SELECT結果確認

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105;
REGTIME
---------------------------------------------------------------------------
22-09-05 20:20:03.525808
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105; REGTIME --------------------------------------------------------------------------- 22-09-05 20:20:03.525808
SQL> SElECT REGTIME FROM USERTEST WHERE USERID = 105;

REGTIME
---------------------------------------------------------------------------
22-09-05 20:20:03.525808

 

Oracle

Posted by arkgame