将varchar字段中的Oracle时间增加一定量?

Mar*_*eon 1 sql oracle time plsql

我们有时间存储在Oracle varchar(5)字段中.

使用HH24存储的时间:MI(即:22:30,10:15).

我们如何运行一个查询,将这些时间增加或减少一定数量?即:增加一小时或减少45分钟.

Vin*_*rat 6

你可以使用内置日期(和间隔 - 感谢Alex的链接)计算:

to_char(to_date(:x, 'hh24:mi') + INTERVAL :y MINUTE,'hh24:mi')
Run Code Online (Sandbox Code Playgroud)

例如:

SQL> WITH my_data AS (
  2     SELECT '12:15' t FROM dual
  3     UNION ALL SELECT '10:30' FROM dual
  4  )
  5  SELECT t, 
  6         to_char(to_date(t, 'hh24:mi') + INTERVAL '15' MINUTE,'hh24:mi')"t+15"
  7    FROM my_data;

T     t+15
----- -----
12:15 12:30
10:30 10:45
Run Code Online (Sandbox Code Playgroud)

  • @Marcus的间隔时间更长[这里](http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements003.htm#i38598). (2认同)