如何减去包含时间值作为输入的两个varchar列

时间:2017-04-16 23:57:36

标签: sql oracle timestamp

我试图计算两个varchar列之间的差异来计算no。几小时或没有。分钟。但只是想知道我该怎么做。我尝试使用TO_DATE,TO_TIMESTAMP函数将varchar列转换为datetime / timestamp,但是他们没有帮助,然后尝试减法。任何人都可以分享一些输入如何解决这个问题。任何帮助,将不胜感激。谢谢。

我的输入数据如下所示。

Col1       Col2
'7:00 AM'  '7:59 PM'

Output :-
779

2 个答案:

答案 0 :(得分:1)

SELECT ( TO_DATE( Col2, 'HH12:MI AM' ) - TO_DATE( Col1, 'HH12:MI AM' ) ) * 24 * 60
         AS minutes_difference
FROM   DUAL;

<强>输出

MINUTES_DIFFERENCE
------------------
               779

答案 1 :(得分:0)

您可以使用to_date()将值转换为日期/时间。这应该有效:

select (to_date(col2, 'HH:MI AM') - to_date(col1, 'HH:MI AM')) * 24 * 60 as minutes