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