我想查找本月的新增的数据,现在的SQL语句是:
SELECT * FROM TEST1 WHERE ((TO_CHAR(CTIME,'mm')-TO_CHAR(SYSDATE,'mm'))=0) ;可是这样有问题,如果是明年的本月再次查找时,今年本月的数据也会出来,应该如何查询呢。
呵呵,还有本周的数据
SELECT * FROM TEST1 WHERE ((TO_CHAR(CTIME,'mm')-TO_CHAR(SYSDATE,'mm'))=0) ;可是这样有问题,如果是明年的本月再次查找时,今年本月的数据也会出来,应该如何查询呢。
呵呵,还有本周的数据
这样应该就可以了啊
即你的语句效果如下:
SELECT * FROM TEST1 WHERE to_char(ctime,'mm')=to_char(sysdate,'mm')
但是实际上应该采用如下语句
SELECT * FROM TEST1 WHERE to_char(ctime,'yyyymm')=to_char(sysdate,'yyyymm')
FROM TEST1
WHERE ctime >= LAST_DAY(ADD_MONTH(SYSDATE,-1))+1
AND ctime < LAST_DAY(SYSDATE)+1
SELECT * FROM TEST1
WHERE CTIME between to_date(to_char(sysdate,'yyyymm'),'yyyymm') and sysdate
或(如果你不太介意效率)SELECT * FROM TEST1
WHERE to_char(CTIME,'yyyymm')=to_char(sysdate,'yyyymm')
select * from test1
where ctime between trunc(sysdate,'mm') and sysdate
如果不是本月
select * from test1
where ctime >=to_date('2006-01-01','yyyy-mm-dd') and
ctime < to_date('2006-02-01','yyyy-mm-dd')