如何通过sql查询在Oracle中更新类型为TIMESTAMP的列?

use*_*011 9 sql database oracle timestamp

我有专栏:

"LASTTOUCH" TIMESTAMP(9) NOT NULL ENABLE
Run Code Online (Sandbox Code Playgroud)

我必须将当前日期设置为此列.

但我不知道我怎么能这样做.

请问你能帮帮我吗?

Koe*_*err 13

插入:

insert into tablename (LASTTOUCH) values (CURRENT_TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)

更新:

update tablename set LASTTOUCH=CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)


Raj*_*thi 6

如果需要当前时间(包括时间戳精度),可以使用systimestamp或current_timestamp

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
04-OCT-12 11.39.37.670428 AM -04:00

SQL> select CURRENT_TIMESTAMP from dual;

CURRENT_TIMESTAMP
---------------------------------------------------------------------------
04-OCT-12 11.39.51.021937 AM -04:00

update table_name set column_name = SYSTIMESTAMP where id = 100;
Run Code Online (Sandbox Code Playgroud)

如果只是将值设置为sysdate,则时间戳的小数秒部分将被清零,因为日期会隐式转换为时间戳.

SQL> create table t1(
  2     time1 timestamp
  3  );

Table created.

SQL> insert into t1 values (sysdate);

1 row created.

SQL> commit;

SQL> select to_char(time1,'MM/DD/YYYY HH24:MI:SS.FF6') result from t1;

RESULT
-----------------------------
10/04/2012 11:43:07.000000
Run Code Online (Sandbox Code Playgroud)