Преобразовать значение даты в PST для сравнения: Oracle - PullRequest
0 голосов
/ 25 августа 2011

У меня 2 вопроса:

  1. Я хочу сравнить поле с типом данных «Дата» с заданной датой. БД - оракул, и, будучи mysql-парнем, мне сложно придумывать простые запросы. field("date_closed") хранит дату в формате UTC (24-Aug-2011 18:55:11 for example), и я хочу преобразовать ее в PST для сравнения. Я пробовал этот запрос, но он возвращает несколько дополнительных строк в наборе данных (очевидно):

    select * from table1 where trunc(date_closed)=to_date('2011-08-24','yyyy-mm-dd')

    Как преобразовать в формат PST перед сравнением?

  2. В том же запросе как сравнить «date_closed» с текущей датой?

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Кроме того, имейте в виду, что если вы сравниваете с текущей датой - я предполагаю, что вы хотите удалить метку времени и сравнить только день.

Итак, если new_time (date_closed, 'GMT', 'PST') переводит дату, ваше предложение where будет сравнивать что-то вроде

trunc (new_Time (date_closed, 'GMT', 'PST')) = trunc (sysdate)

для получения всех записей с закрытой датой текущего дня в PST.

0 голосов
/ 25 августа 2011

Вам нужна функция NEW_TIME

Даты не включают часовой пояс в Oracle, и предполагается, что они находятся в часовом поясе базы данных (который может быть UTC, но, вероятно, нет).Вы должны посмотреть на типы данных TIMESTAMP WITH TIMEZONE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...