У меня есть список событий с отметками времени начала и окончания в GMT UTC + 0. Столбец типа DATE, но также имеет время (не спроектированный мной).
Начальная временная метка явно индексируется
Мне нужно найти события, происходящие, скажем, с 06:00 до 22:00 по местному времени, которое является восточным летним временем UTC-4. в любой день между 31 марта и 2 апреля.
Единственный способ, который я нашел, это преобразовать его в TO_CHAR (). Он также не использует индекс, потому что он использует функцию TO_CHAR.
Вот к чему я так далеко.
TO_CHAR(e.begin_time,'HH24:MI') >= TO_CHAR(FROM_TZ(TO_TIMESTAMP('06:00','HH24:MI'),'US/Eastern') AT TIME ZONE '+00:00','HH24:MI') AND
TO_CHAR(e.begin_time,'HH24:MI') <= TO_CHAR(FROM_TZ(TO_TIMESTAMP('22:00','HH24:MI'),'US/Eastern') AT TIME ZONE '+00:00','HH24:MI') AND
TO_CHAR(e.begin_time,'DDMMYYYY HH24:MI') >= TO_CHAR(FROM_TZ(TO_TIMESTAMP('Mar-31-2012 00:00','MON-DD-YYYY HH24:MI'),'US/Eastern') AT TIME ZONE '+00:00','DDMMYYYY HH24:MI') AND
TO_CHAR(e.begin_time,'DDMMYYYY HH24:MI') <= TO_CHAR(FROM_TZ(TO_TIMESTAMP('Apr-2-2012 23:59','MON-DD-YYYY HH24:MI'),'US/Eastern') AT TIME ZONE '+00:00','DDMMYYYY HH24:MI')
Заранее спасибо,
Dan