2012-07-09 73 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 
相關問題