ORACLE SQL查询

ORACLE SQL查询,sql,oracle,Sql,Oracle,我正在使用oracle数据库,我正在创建一个查询,不确定如何与我设置为“创建”的字段进行比较 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 JOI

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

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)?

您已经声明(不确定术语是否合适,请随意更正)
创建了
字段作为
to_char
,因此它的类型是
varchar2
,这意味着您无法将其与
to\u timestamp
进行比较

我认为有几种方法可以进行这种比较:

  • 保持字段不变,并将
    CAST((C.CREATEDTTM)作为时间戳与所需日期进行比较
  • 将创建的
    定义为时间戳,即将
    删除为_char
  • 将创建的
    与`to_char(to_timestamp(…))进行比较

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

    为什么要将这些字段分解成这些奇怪的小块?c.createdtm的数据类型是什么?