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

我有专栏:

"LASTTOUCH" TIMESTAMP(9) NOT NULL ENABLE

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

但我不知道该怎么做。

你能帮帮我吗?

【问题讨论】:

    标签: sql database oracle timestamp


    【解决方案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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多