Как побороть различие в форматах даты в Oracle?

igorpopkoff

Автоматизирую тестовый сценарий, нужно вытащить из оракловой базы контракты, которые изменялись сегодня.
В SQL developer это просто выполняется запросом:
select SPLIT_CODE from DATA_WAREHOUSE.SPLIT_FACT where UPDATED_ON like to_char(sysdate,'DD.MM.YY')  

Но когда я выполняю такой запрос из QTP(инструмент автоматизации тестирования) - результат приходит пустой, потому что UPDATED_ON, с точки зрения QTP, выглядит не как DD.MM.YY, а как MM/DD/YYYY HH:MI:SS AM
При этом редактор запросов в QTP довольно куцый и очень неудобный, поэтому нужно сделать какой-то простой запрос, чтобы он мог его переварить, а я не врубаюсь, так как до прошлой недели вообще ничего не знал про sql кроме запросов вида "select * from таблица". Наверное, можно нагуглить ответ на мой вопрос, но полтора часа гуглфу и экспериментов в индийском стиле мне пока что не помогли, и пора уже с работы валить, так что буду весьма благодарен, если кто-нибудь подскажет.

Bayur19

такое пробовал?
select SPLIT_CODE from DATA_WAREHOUSE.SPLIT_FACT where to_char(UPDATED_ON,'DD.MM.YY') = to_char(sysdate,'DD.MM.YY')
а вообще неплохо бы тип данных UPDATED_ON знать

FRider

where trunc(UPDATED_ON) = trunc(sysdate)
ЗЫ я так понял, что UPDATED_ON имеет тип timestamp

igorpopkoff

Не сработало, но всё равно спасибо, я сам разобрался, что к чему.

FRider

а почему, можешь сказать, интересно просто :)

igorpopkoff

А хрен знает, просто результата не выдало, я обошелся вообще без даты, по другим полям выделил нужное.

ms_nadin

Посмотри NLS параметры сессии в SQL девелопере и в сессии, которую создаешь в QTP:
 
select * from V$NLS_PARAMETERS   

Скорее всего в QTP формат даты в NLS_TIMESTAMP_FORMAT будет отличен от DD.MM.YY
В QTP после открытия сессии можно выполнить:
 
alter session set NLS_TIMESTAMP_FORMAT='DD.MM.YY HH24:MI:SSXFF'  
Оставить комментарий
Имя или ник:
Комментарий: