Oracle查询数据:查询当月的数据?

2025-03-21 00:47:20
推荐回答(4个)
回答1:

需要看日期字段存储的是字符还是日期类型的数据,方法略有不同

如果存储的是字符型(如2015-09-01类型的数据)字段,可用以下语句:

select * from 表名 where to_char(sysdate,'yyyy-mm')=substr(日期字段,1,7);

如果存储的是日期型字段,可用以下语句:

select * from 表名 where to_char(sysdate,'yyyy-mm')=to_char(日期字段,'yyyy-mm');

所用函数说明:

to_char在语句中是将日期转为字符的函数,格式则为函数中设定的'yyyy-mm'格式。

sysdate代表当前日期时间,是日期型数据。

substr是截取函数,第一个参数为要截图的字段,第二个参数为截取的起始位,第三个参数代表截取的长度。

回答2:

select * from t_table t       
where t.time >=TRUNC(SYSDATE, 'MM')       
and t.time<=last_day(SYSDATE)

回答3:

time字段是什么类型的?
如果是date型的

select * from table t where to_char(t.time,'YYYYMM')=to_char(sysdate,'YYYYMM')
如果是varchar2类型的
select * from table t where substr(t.time,1,7)=to_char(sysdate,'YYYY-MM')

回答4:

“25435331” ,老师没教过你,在列上不要有函数吗,会全表扫描的