sql - 将 Oracle 时间戳更新为当前日期

标签 sql oracle timestamp sql-update

我在 Oracle 数据库中有一个 TIMESTAMP(6) 字段。此字段的值采用格式

DD/MM/YYYY HH:MM:SS.000000000 PM

如何将此值更新为当前时间戳?

[类似问题的链接:] update date value in oracle

我点击了这个链接,但是下面的查询需要很长时间才能执行。
update table_name set start_time = to_char(to_date(start_time, 'yyyy/mm/dd-hh:mi:ss:ff3'), '2012/10/10-19:30:00:00') where column='Q'

最佳答案

一个 timestamp是一个时间点,它没有格式。要将此类字段更新为当前时间戳,请使用 SYSTIMESTAMP CURRENT_TIMESTAMP (分别是服务器的日期/时间和 session 的日期/时间):

UPDATE your_table 
   SET your_column = systimestamp
 WHERE ...

如果查询花费的时间异常(比具有相同 WHERE 子句的可比较的 SELECT 长得多),最可能的原因是:
  • 您正在更新的行被另一个 session 锁定(对这些行执行 SELECT FOR UPDATE NOWAIT 将确保您拥有锁定)。
  • 您有执行额外工作的触发器,
  • 您正在更新由非索引外键引用的列。
  • 关于sql - 将 Oracle 时间戳更新为当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818229/

    相关文章:

    mysql - 需要为表中存在的每一行获取 true/false

    带有更新的 MySQL 多选语句

    sql - 找不到元素时,如何打印列值的 'NULL' 或 '0' 值?

    sql-server - 当操作涉及对任何列进行排序、聚合和过滤时,针对读取(低/无写入)进行了优化的内存数据库

    ios - 在不同设备中调用 timeIntervalSince1970

    python - SQLAlchemy:按天对多个表进行分组

    sql - Neo4j 比 SQL 快吗?

    sql - ORA-02267 : column type incompatible with referenced column type

    mysql - 给定一个包含时间段的表,查询每天的总和列表

    entity-framework - EntityFramework单表继承类不能使用时间戳?