在Oracle中添加两个时间值

时间:2018-01-03 03:45:20

标签: sql oracle

我有两个字段 - UTC的事务时间和UTC偏移量。事务时间具有HH:MI格式,而偏移量具有+/- HH:MI格式。如何在Oracle 11g中添加这两个值?

2 个答案:

答案 0 :(得分:3)

以您的方式存储日期/时间是一个非常糟糕的设计。将其转换为annotationProcessor 'net.simonvt.schematic:schematic-compiler:0.6.3' 将使您的生活更轻松。

您可以进行如下转换:

TIMESTAMP WITH TIME ZONE

答案 1 :(得分:1)

我建议您不要将日期和时间存储为varchar。它不仅使这个查询复杂化,而且使排序,分组,索引和查询变得更慢。无论如何,您需要将日期和时间列转换为日期日期类型,然后解析偏移列并将其转换为可用于日期数学的时间间隔。

SELECT to_date(date_column || ' ' || time_column, 'mm/dd/yyyy HH24:MI') + 
       TO_DSINTERVAL(decode(substr(offset_column,1,1),'-', '-') || '0 0' || substr(offset_column, 3) || ':00') AS calculated_time
  FROM your_table