问题描述
select * from 表名 where 字符型日期字段 >= to_char(trunc(to_date('20100630','YYYY-MM-DD'),'mm'),'YYYYMMDD') and 字符型日期字段 <= to_char(last_day(to_date('20010630','YYYY-MM-DD')),'YYYYMMDD')取给定日期20010630 当月的数据,分拆后 第一个条件好使,第二个条件不好使,但第二个条件换成大于号后也好使,条件单独拿出查询是一个结果集。求各们大大帮忙,小弟在此谢过 问题补充:Dxx23 写道
解决方案
引用select * from 表名 where 字符型日期字段 >= to_char(trunc(to_date('20100630','YYYY-MM-DD'),'mm'),'YYYYMMDD')and 字符型日期字段 <= to_char(last_day(to_date('20010630','YYYY-MM-DD')),'YYYYMMDD') 你这里日期好像写错了啊: >=20100630同时<=20010630, 没有日期在[20100630,20010630]这个区间
解决方案二:
select * from 表名 where to_date(字符型日期字段,'YYYY-MM-DD') >= trunc(to_date('20100630','YYYY-MM-DD'),'mm') and to_date(字符型日期字段,'YYYY-MM-DD')<= last_day(to_date('20010630','YYYY-MM-DD')) 你试试……
解决方案三:
取当月的数据格式:select * from table t where t.create_time >=TRUNC(SYSDATE, 'MM') and t.create_time<=last_day(SYSDATE)你可以把“字符型日期字段”转换成日期形式比较。