仅更新日期部分的时间部分

时间:2018-07-16 12:48:04

标签: oracle

我有一个表,其中包含Date数据类型的某些列。我需要保持Date部分不变,但是我需要将所有time部分的格式设置为00:00:00。 例如:

09-FEB-14 09:00:00
10-MAR-12 12:00:00

我需要将它们更新为:

09-FEB-14 00:00:00
10-MAR-12 00:00:00

我该怎么做?

1 个答案:

答案 0 :(得分:4)

由于您似乎想将时间部分截断到午夜,因此您可以使用TRUNC函数:

UPDATE your_table
SET date_column = TRUNC( date_column )

如果您想将它们设置为特定时间,则可以使用TRUNC并添加一个INTERVAL文字:

UPDATE your_table
SET date_column = TRUNC( date_column ) + INTERVAL '12:34:56' HOUR TO SECOND;

如果您想休假一个小时,则可以减去INTERVAL文字:

UPDATE your_table
SET date_column = date_column - INTERVAL '1' HOUR;

或减去一天的一部分:

UPDATE your_table
SET date_column = date_column - 1/24;