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
我怎样才能做到这一点?
解决方案
由于您似乎想将时间部分截断回午夜,因此您可以使用以下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;
推荐阅读
- python - 根据这些条件增加和减少一个值
- excel - 如何将基于列 A 重复名称的整行复制到 VBA 中其各自的工作表中?
- go - Jenkins GO 运行失败,出现 git 128
- c - 从父进程监控子进程
- android - RxJava 操作
- python - Numpy install 想要在我没有写权限的 lib 文件夹中创建 tmp 文件
- pandas - 熊猫引擎参数
- sql - PostgreSQL - 如何提取逗号之前或分隔符/逗号之间的字符串,但仅在逗号之后的值大于 0 的情况下
- c++ - QTableView 没有检测到 doubleClick
- matlab - 为什么 day() 函数向我抛出此错误:在调用函数“day”时检查是否缺少参数或参数数据类型不正确?