我正在使用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)?
答案 0 :(得分:0)
您已声明(不确定术语是否合适,请随时更正我)created
字段为to_char
,因此其类型为varchar2
,这意味着您无法比较它与to_timestamp
。
我看到了几种做这种比较的方法:
CAST((C.CREATEDTTM) AS TIMESTAMP
与您需要的日期进行比较; created
定义为时间戳,即删除to_char
; created
与`to_char(to_timestamp(...)); 哪一个最适合取决于您将如何在查询结果中使用created
字段。如果可能的话,我个人会选择选项2。