Формат Oracle last_ddl_time - PullRequest
       20

Формат Oracle last_ddl_time

2 голосов
/ 04 февраля 2010

Мне нужно запросить all_objects таблицу, где last_ddl_time='01 jan 2010', но она отказывается от формата даты ...

Любое тело дает мне точный формат запроса?

Ответы [ 4 ]

2 голосов
/ 04 февраля 2010

Как сказал AKF, вам следует использовать Trunc, если вы не знаете точное время изменения DDL.Ваш запрос, который вы добавили в комментарии, ищет любые объекты, в которых DDL изменился 01.01.2010 00:00:00.Попробуйте:

SELECT * 
  FROM all_objects
 WHERE trunc(last_ddl_time) = to_date('01-01-2010','dd-mm-yyyy');
1 голос
/ 08 февраля 2010

Я предлагаю вам использовать де date литерал :

where trunc(last_ddl_time) = date '2010-01-01'
0 голосов
/ 17 декабря 2011
SELECT *
  FROM all_objects t
WHERE trunc(t.last_ddl_time, 'DD') = to_date('2010-JAN-01', 'YYYY-MON-DD'); 
0 голосов
/ 04 февраля 2010

Вы можете использовать функцию to_date для форматирования даты.Если вы введете буквальную строку, Oracle попытается преобразовать эту строку, используя to_date с форматом по умолчанию 'DD-MON-YY', поэтому ваша дата будет выглядеть как «01-JAN-10».Поскольку Oracle будет использовать эту же функцию, вы можете захотеть поместить ее в себя и наслаждаться более тонкой гранулярностью, которую может обеспечить пользовательское форматирование.

Было бы хорошо отметить, что даты, хранящиеся в этом столбце, скорее всего, имеютболее точные даты, в том числе часы и минуты и т. д. Несмотря на то, что вам придется немного снизить производительность, вам лучше будет использовать trunc(last_ddl_time), если вы тестируете с =.

Есть некоторыеХорошая информация о Даты в Oracle на эта ссылка .

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