können Sie sehen, wie weit das Datum, ab Mitternacht ist und Filter auf, dass:
select * from mytable
where date_column - trunc(date_column) < 5.5/24
Die date_column - trunc(date_column)
Berechnung Sie geben einen Bruchteil ein Tag, wie es für date arithmetic normal ist. Die 5.5/24
ist der Bruchteil des Tages durch die Zeit um 05:30 dargestellt; 5,5 Stunden von 24 Stunden.
Wenn die Spalte ein Zeitstempel anstelle eines Datums ist, wird als Ergebnis der Subtraktion ein Intervalldatentyp angezeigt. Sie können an interval literal trotzdem verwenden, wenn Sie es vorziehen, oder finden es leichter zu verstehen als 5.5/24 (oder haben kompliziertere Zeiten zu vergleichen, die härter sind als Bruch auszudrücken):
select * from mytable
where date_column < trunc(date_column) + interval '0 05:30:00' day to second;
Auf diese Weise rund du bist Vergleichen Sie das Datum in Ihrer Spalte mit dem gekürzten Datum (dh Mitternacht an diesem Tag) und fügen Sie 5 Stunden 30 Minuten hinzu, also 05:30 Uhr am selben Tag.
Schnell Demo mit einfachen Daten in einem CTE und eine dritte sehr leichte Variante, aber sie alle das gleiche Ergebnis:
with mytable (date_column) as (
select to_date('2016-04-15 05:29:29', 'YYYY-MM-DD HH24:MI:SS') from dual
union all select to_date('2016-04-14 05:29:29', 'YYYY-MM-DD HH24:MI:SS') from dual
union all select to_date('2016-04-15 05:30:30', 'YYYY-MM-DD HH24:MI:SS') from dual
)
select * from mytable
where date_column < trunc(date_column) + 5.5/24;
DATE_COLUMN
-------------------
2016-04-15 05:29:29
2016-04-14 05:29:29
Beachten Sie aber, dass jede Manipulation der Spalte wie diese einen Index wird verhindern, dass benutzt. Wenn Sie dies regelmäßig tun müssen, kann es sinnvoll sein, eine virtuelle Spalte/einen Index hinzuzufügen, der diese Berechnung durchführt.
Es ist ein Datum Spalte –