简体   繁体   English

如何将Oracle Timestamp值从当前更新为过去的时间戳

[英]How to update Oracle Timestamp value from the current to a timestamp from the past

I have an Oracle Table called EVENT_TABLE_T . 我有一个名为EVENT_TABLE_T的Oracle表。 It has a column called LAST_UPDATE_DT . 它有一个名为LAST_UPDATE_DT的列。 One sample value from this column is: 01-JUL-13 11.20.22.37448900 AM . 该列的一个样本值为: 01-JUL-13 11.20.22.37448900 AM There are over 700 rows that have this same timestamp value. 有超过700行具有相同的时间戳值。 I would like to update this value to 45 days before this date, using a SQL statement. 我想使用SQL语句将此值更新为此日期之前的45天。 For example, 01-JUL-13 11.20.22.37448900 AM , after my mental arithmetic, should become: 15-May-13 11.00.00...... (exactly 45 days). 例如,在我的心算之后, 01-JUL-13 11.20.22.37448900 AM应该成为: 15-May-13 11.00.00...... (恰好是45天)。 If this is successful, I would like to apply an update on a different value in LAST_UPDATE_DT that reflects a value that goes back back 46 days. 如果成功,我想对LAST_UPDATE_DT中的另一个值应用更新,该值反映了可以追溯到46天的值。

What I hope to accomplish by asking this question is to be able to learn the basics of Oracle dates and timestamps and apply them to my batch processing work. 我希望通过提出这个问题来实现的目的是能够学习Oracle日期和时间戳的基础知识,并将它们应用到我的批处理工作中。 I would like to be able to run this update sql statement from Oracle SQL Developer and also from inside a Java PreparedStatement. 我希望能够从Oracle SQL Developer以及Java PreparedStatement.运行此更新sql语句PreparedStatement.

Thanks in advance for your help. 在此先感谢您的帮助。

You can simply subtract a time interval from the timestamp. 您只需从时间戳中减去时间间隔即可。

UPDATE EVENT_TABLE_T 
SET LAST_UPDATE_DT = last_update_dt - interval '45' day
WHERE LAST_UPDATE_DT = TO_TIMESTAMP('01-JUL-2013 11:20:22:37448900','DD-MON-YYYY HH24: MI:SS:FF')

Try something like: 尝试类似的东西:

    UPDATE EVENT_TABLE_T 
SET LAST_UPDATE_DT = TO_TIMESTAMP('15-MAY-2013 11:00:00:00','DD-MON-YYYY HH24:MI:SS:FF')
WHERE LAST_UPDATE_DT = TO_TIMESTAMP('01-JUL-2013 11:20:22:37448900','DD-MON-YYYY HH24: MI: SS:FF')

similar for the update you want for going back 46 days. 类似的更新你想要回去46天。

Check for syntactical error if any 检查是否存在语法错误

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM