Oracle SQL: znaczniki czasu w klauzuli where
Muszę poszukać wierszy, które mieszczą się w określonym przedziale czasowym.
select *
from TableA
where startdate >= '12-01-2012 21:24:00'
and startdate <= '12-01-2012 21:25:33'
Tzn. wyszukaj wiersze z dokładnością znacznika czasu w sekundach, jak to osiągnąć?
35
1 answers
Musisz użyć to_timestamp (), aby przekonwertować łańcuch znaków na odpowiednią wartość znacznika czasu:
to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
Jeśli twoja kolumna jest typu DATE
(który obsługuje również seconds), musisz użyć to_date ()
to_date('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
Aby uzyskać warunek where, użyj następującego:
select *
from TableA
where startdate >= to_timestamp('12-01-2012 21:24:00', 'dd-mm-yyyy hh24:mi:ss')
and startdate <= to_timestamp('12-01-2012 21:25:33', 'dd-mm-yyyy hh24:mi:ss')
Nigdy nie musisz używać to_timestamp()
na kolumnie typu "timestamp"
edycja poprawiona literówka
80
Author: a_horse_with_no_name,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-28 16:15:41
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-28 16:15:41