我正在编写此查询,以查找两个日期之间的数据。我拥有的时间格式与我在查询中使用的时间格式完全相同
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')
我的查询没有执行并给我一个格式例外。
答案 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。