2012-07-09 77 views
2

我有一个日期(4/30/2012),一个小时(4)和一分钟(45)。我需要将它转换为Oracle日期时间值,以便在PLSQL/Oracle SELECT语句中进行比较。理想的情况下,就不会有这样的功能(C#,因为我好一点知道的话):如何从Oracle/PLSQL中的各个部分创建日期时间?

var date = "4/30/2012"; 
var hour = "4"; 
var minute = "45"; 
DateTime myDateTime = convertDateTime(date, hour, minute); 

我有三列的表格,以弥补事件的日期和时间。我有另一张表格,其中的项目根据其开始日期和结束日期可能匹配或不匹配。在伪SQL,这里就是我想要做的事:

SELECT 
    G.Name, 
    (SELECT MAX(Cost) 
     FROM CrappyTable AS C 
     WHERE G.StartTime < convertDateTime(C.Date, C.Hour, C.Minute) 
     AND G.EndTime > convertDateTime(C.Date, C.Hour, C.Minute)) as Cost 
FROM GoodTable as G 
WHERE G.Price < 100.00; 

OR“选择名称和(一个时间范围内从报告成本)最高费用 这里的价格低于$ 100”

是否有一个现有的函数可能会做类似上面的convertDateTime函数?

+0

是的,我的意思PL/SQL。我并没有太多地使用Oracle,所以我把我的T和PL混在一起。我解决了这个问题。 – 2012-07-09 22:44:40

回答

7

串连您日期和时间窗口,并通过他们向TO_DATE(假设二十四小时制时间):

TO_DATE(date||' '||hour||':'||minute,'MM/DD/YYYY HH24:MI') 

这将把您的日期/时间值转换为Oracle日期类型。

2

或者:

TO_DATE(date, 'MM/DD/YYYY') + hour/24 + minute/1440 
相关问题