【问题标题】:Update only the date from datetime - Oracle仅更新日期时间的日期 - Oracle
【发布时间】:2012-02-15 03:21:30
【问题描述】:

我有一个数据类型为日期时间的列,因此包含以下值:06-FEB-12 02.39.11.000000000 PM。我只想将日期为06-FEB-12 的所有行的日期修改为25-JAN-12 以保留时间。

我可以通过更新查询来做同样的事情吗?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我对数据类型有点困惑。您声明该列是DATE,但您提供的示例数据有小数秒,这意味着TIMESTAMP

    您可以从 2012 年 2 月 6 日具有 DATETIMESTAMP 的所有行中精确减去 12 天,这将在 2012 年 1 月 25 日产生 DATETIMESTAMP 值。

    UPDATE table_name
       SET column_name = column_name - interval '12' day
     WHERE trunc( column_name ) = date '2012-02-06';
    

    【讨论】:

    • 很抱歉不清楚。是的,该列是 Timestamp(6) 格式。当我运行查询时,我收到错误missing or invalid <datetime field> 30089. 00000 - "missing or invalid <datetime field>" *Cause: A <datetime field> (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) is expected but not found, or a <datetime field> specified the <end field> in an <interval qualifier> is more significant than its <start field>.
    • 知道了!您能否将查询更改为将间隔文字设为day 而不是days。我没有编辑权限
    • @darkie15 - 是的,很抱歉那个错字。更新了答案以修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多