我尝试执行以下查询:
select to_date(SUBJ_VST_FRM_VST_DT,'dd-MON-YY')
from SMARTTRIAL_ODR_LANDING.RAVE_LND_SUBJ_VST_FRM
minus
select SUBJ_VST_FRM_VST_DT
from SMARTTRIAL_ODR_STAGE.LS_STG_SUBJ_VST_FRM;
但返回以下错误:ORA-01861: literal does not match format string
问题是什么?
答案 0 :(得分:0)
使用以下查询。让我知道它是否提供了正确的输出
select NVL(to_date(SUBJ_VST_FRM_VST_DT,'DD-MON-YY') ,SYSDATE)
from SMARTTRIAL_ODR_LANDING.RAVE_LND_SUBJ_VST_FRM
minus
select to_date(NVL(SUBJ_VST_FRM_VST_DT,SYSDATE),'DD-MON-YY')
from SMARTTRIAL_ODR_STAGE.LS_STG_SUBJ_VST_FRM;
答案 1 :(得分:0)
查看您的示例数据,您的nvarchar列似乎包含以下格式的日期数据(YYYY-MM-DD hh24:mi:ss)。
以下查询适用于我。
SELECT TO_DATE('2000-01-03 00:00:00','YYYY-MM-DD hh24:mi:ss') FROM DUAL;
所以我希望以下查询适合你。
SELECT TO_DATE(subj_vst_frm_vst_dt,'YYYY-MM-DD hh24:mi:ss')
FROM smarttrial_odr_landing.rave_lnd_subj_vst_frm
MINUS
SELECT subj_vst_frm_vst_dt
FROM smarttrial_odr_stage.ls_stg_subj_vst_frm;
但是,上述查询还将包含时间戳。如果ls_stg_subj_vst_frm表中的subj_vst_frm_vst_dt列不包含时间戳,或者您不想比较时间戳,则可以尝试以下查询。
SELECT TRUNC(TO_DATE(subj_vst_frm_vst_dt,'YYYY-MM-DD hh24:mi:ss'))
FROM smarttrial_odr_landing.rave_lnd_subj_vst_frm
MINUS
SELECT TRUNC(subj_vst_frm_vst_dt)
FROM smarttrial_odr_stage.ls_stg_subj_vst_frm;