从 Oracle 中的列减少 'X' 小时
Reduce 'X' hours from a column in Oracle
我有一个 table 'ABC',其列 TIME_THU 的值类似于 04:00、04:02、04:03。该列是 VARCHAR2,我需要将列值减少到 00:00、00:02、00:03,即将它们减少 04 小时。
需要使用 UPDATE 查询对此进行更改。
有点像,
Update ABC set TIME_THU = TIME_THU -4;
谢谢
鉴于您的数据,最好的选择似乎是转换为日期,减去小时数,然后再转换回来。
Update ABC set TIME_THU = to_char(to_date(TIME_THU,'hh24:mi')-(4/24),'hh24:mi')
这里需要注意的是,如果您的任何时间少于 4:00,您可能会得到不正确的结果。我对你们的要求不够了解,无法知道在那种情况下正确的结果是什么,所以我无法解决它。
您可能还想研究 interval
数据类型,它更适合存储与日期断开连接的时间。
我有一个 table 'ABC',其列 TIME_THU 的值类似于 04:00、04:02、04:03。该列是 VARCHAR2,我需要将列值减少到 00:00、00:02、00:03,即将它们减少 04 小时。
需要使用 UPDATE 查询对此进行更改。
有点像,
Update ABC set TIME_THU = TIME_THU -4;
谢谢
鉴于您的数据,最好的选择似乎是转换为日期,减去小时数,然后再转换回来。
Update ABC set TIME_THU = to_char(to_date(TIME_THU,'hh24:mi')-(4/24),'hh24:mi')
这里需要注意的是,如果您的任何时间少于 4:00,您可能会得到不正确的结果。我对你们的要求不够了解,无法知道在那种情况下正确的结果是什么,所以我无法解决它。
您可能还想研究 interval
数据类型,它更适合存储与日期断开连接的时间。