首页 > 解决方案 > 仅更新日期字段的时间部分

问题描述

我有一个包含一些数据类型列的表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

我怎样才能做到这一点?

标签: oracle

解决方案


由于您似乎想将时间部分截断回午夜,因此您可以使用以下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;

推荐阅读