ORACLE SQL查询

时间:2014-05-02 19:23:23

标签: sql oracle

我正在使用oracle数据库我正在建立一个查询,我不确定如何与我设置为'Created'的字段进行比较

SELECT C.IS_AW_TITLE, A.PORTAL_OBJNAME, C.IS_AW_ACTIVE_FLG, 
(TO_CHAR(CAST((C.CREATEDTTM) AS TIMESTAMP),'YYYY-MM-DD-HH24.MI.SS.FF')) AS 
CREATED,.....

FROM ..., (sysadm.PS_IS_AW_PG_DEFN C LEFT OUTER JOIN  sysadm.PS_IS_AW_SECURITY D ON  
C.IS_AW_GRP_ID = D.IS_AW_GRP_ID ),...

WHERE ( C.IS_AW_CREF_OBJ = A.PORTAL_OBJNAME
AND C.IS_AW_GRP_ID = E.IS_AW_GRP_ID...

'Created'字段产生类似于此示例的结果:2011-09-26-11.22.31.000000

我如何将它包含在查询中以表示'AND Created = to_timestamp(.....,2011-09-26-11.22.31.000000)?

1 个答案:

答案 0 :(得分:0)

您已声明(不确定术语是否合适,请随时更正我)created字段为to_char,因此其类型为varchar2,这意味着您无法比较它与to_timestamp

我看到了几种做这种比较的方法:

  1. 保持字段不变,并将CAST((C.CREATEDTTM) AS TIMESTAMP与您需要的日期进行比较;
  2. created定义为时间戳,即删除to_char;
  3. created与`to_char(to_timestamp(...));
  4. 进行比较

    哪一个最适合取决于您将如何在查询结果中使用created字段。如果可能的话,我个人会选择选项2。