4

日付(2012年4月30日)、時間(4)、分(45)があります。PLSQL / Oracle SELECTステートメントで比較するために、これをOracle日時値に変換する必要があります。理想的には、次のような関数があります(私はそれを少しよく知っているので、C#):

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

イベントの日時を構成する3つの列を持つテーブルがあります。開始日と終了日に基づいて一致する場合と一致しない場合があるアイテムを含む別のテーブルがあります。疑似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;

または「価格が100ドル未満の場合、(期間中に報告されたコストから)名前と最大コストを選択します。」

上記のような機能を実行する可能性のある既存の機能はありconvertDateTimeますか?

4

2 に答える 2

10

日付と時刻のフィールドを連結し、TO_DATEに渡します(24時間制を想定)。

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

これにより、日付/時刻の値がOracleDATE型に変換されます。

于 2012-07-09T22:34:11.703 に答える
2

または:

TO_DATE(date, 'MM/DD/YYYY') + hour/24 + minute/1440
于 2012-07-10T13:46:29.340 に答える