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

Posted

技术标签:

【中文标题】如何通过 sql 查询在 Oracle 中更新类型为 TIMESTAMP 的列?【英文标题】:How can I update column with type TIMESTAMP in Oracle via sql query? 【发布时间】:2012-09-25 16:34:41 【问题描述】:

我有专栏:

"LASTTOUCH" TIMESTAMP(9) NOT NULL ENABLE

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

但我不知道该怎么做。

你能帮帮我吗?

【问题讨论】:

【参考方案1】:

插入:

insert into tablename (LASTTOUCH) values (CURRENT_TIMESTAMP);

更新:

update tablename set LASTTOUCH=CURRENT_TIMESTAMP;

【讨论】:

【参考方案2】:

如果您想要当前时间(包括时间戳精度),您可以使用 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;

如果您只是将值设置为 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

【讨论】:

【参考方案3】:
INSERT INTO tableName VALUES (SYSDATE);

UPDATE tableName SET COLUMN = SYSDATE;

【讨论】:

以上是关于如何通过 sql 查询在 Oracle 中更新类型为 TIMESTAMP 的列?的主要内容,如果未能解决你的问题,请参考以下文章

oracle如何导出具有clob字段类型的sql?

怎么在oracle中查询出所有的视图view?

在 Oracle SQL 中查询不返回单行时更新

如何更新 Oracle 中的“长”数据类型?

oracle数据库如何修改字段的数据类型?

如何在 Oracle 的更新查询中使用 if 语句