Oracle last_ddl_time格式

时间:2010-02-04 03:19:32

标签: oracle

我必须查询all_objectslast_ddl_time='01 jan 2010',但它拒绝日期格式......

任何机构都会给我一个确切的格式来查询?

4 个答案:

答案 0 :(得分:2)

正如AKF所说,除非您知道修改DDL的确切时间,否则您应该使用Trunc。您在评论中添加的查询正在查找DDL在2010年1月1日00:00:00更改的任何对象。尝试:

SELECT * 
  FROM all_objects
 WHERE trunc(last_ddl_time) = to_date('01-01-2010','dd-mm-yyyy');

答案 1 :(得分:1)

我建议您使用de date literal

where trunc(last_ddl_time) = date '2010-01-01'

答案 2 :(得分:0)

您可以使用to_date功能设置日期格式。如果输入文字字符串,Oracle将尝试使用to_date使用默认格式'DD-MON-YY'转换该字符串,因此您的日期将显示为“01-JAN-10”。由于Oracle将使用相同的功能,您可能希望将其放在自己的位置,并享受自定义格式可以提供的更精细的粒度。

值得注意的是,该列中存储的日期很可能具有更精确的日期,包括小时和分钟等。虽然您会受到一点性能影响,但使用{{{ 1}}如果您使用trunc(last_ddl_time)进行测试。

this link处有一些关于Oracle日期的好信息。

答案 3 :(得分:0)

SELECT *
  FROM all_objects t
WHERE trunc(t.last_ddl_time, 'DD') = to_date('2010-JAN-01', 'YYYY-MON-DD');