日期格式问题,ORACLE

时间:2014-12-17 11:26:14

标签: sql oracle date

我正在编写此查询,以查找两个日期之间的数据。我拥有的时间格式与我在查询中使用的时间格式完全相同

    select TO_CHAR(REC_NO),(FIRSTNAME ||' '|| LASTNAME) as NAME,
           LOC_NAME,TO_CHAR(START_TIME,'yyyy/mm/dd/HH:MI:SS'),
           TO_CHAR(END_TIME,'yyyy/mm/dd/HH:MI:SS'),
           TT_NO,CUST_ID,CUST_MOB,MAC_ADDR,EMAIL_ID,s.STATUS 
     from vw_rtb_visit_assn v 
left join vu_issue_status@jiradb s on v.TT_NO = s.TICKETNUMBER  and TT_NO = '123' 
      and v.ASSN_TIME between to_date('Tue Dec 16 00:00:00 PKT 2014','yyyy/mm/dd')
      and to_date('Wed Dec 17 00:00:00 PKT 2014','yyyy/mm/dd')

我的查询没有执行并给我一个格式例外。

3 个答案:

答案 0 :(得分:3)

您的日期不是您在条件

中传递的特定字符的实际格式
to_date('Tue Dec 16 00:00:00 PKT 2014','yyyy/mm/dd')

应该是

to_date('Tue Dec 16 00:00:00 PKT 2014','DY MON DD HH24:MI:SS TZD YYYY')

答案 1 :(得分:1)

to_date('DATE_IN_CHAR','FORMAT')中DATE_IN_CHAR和FORMAT的格式应匹配。

请尝试下面的

  and v.ASSN_TIME between to_date('2014/12/16','yyyy/mm/dd')
  and to_date('2014/12/17','yyyy/mm/dd')

答案 2 :(得分:1)

日期没有格式。格式用于将字符串解析为日期或从日期生成字符串。您不必执行其中任何操作,只需将间隔指定为日期文字,如in the documentation所述,例如:

  and v.ASSN_TIME between DATE '2014-12-16' AND DATE '2014-12-17'

日期文字是实际日期值,而不是必须使用特定格式解析的字符串。

您还可以使用

指定TIMESTAMP文字
TIMESTAMP '1997-01-31 09:26:50.124'

TIMESTAMP '1997-01-31 09:26:56.66 +02:00'

用于TIMESTAMP WITH TIMEZONE。

相关问题