oracle中怎样获取当前月上个月的第一天和最后一天?
答案:2 悬赏:50
解决时间 2021-03-02 13:48
- 提问者网友:枫涩帘淞幕雨
- 2021-03-02 07:38
查询数据时有个列T是月数据,包括8,9,10月的数据, 现在是10月 。请教一下如何对T列做限制,只查询9月的数据?
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-03-02 08:52
select trunc(add_months(sysdate,-1),'mm') first_day,last_day(add_months(sysdate,-1)) last_day from dual;
你的查询应该这样写:
select * from tabname where t between to_date('20130901','yyyymmdd') and to_date('20130930','yyyymmdd');
不建议在查询条件中写入变量,如
select * from tabname where t between trunc(add_months(sysdate,-1),'mm') and last_day(add_months(sysdate,-1));
这其中sysdate是个变化的量,不建议使用。
你的查询应该这样写:
select * from tabname where t between to_date('20130901','yyyymmdd') and to_date('20130930','yyyymmdd');
不建议在查询条件中写入变量,如
select * from tabname where t between trunc(add_months(sysdate,-1),'mm') and last_day(add_months(sysdate,-1));
这其中sysdate是个变化的量,不建议使用。
全部回答
- 1楼网友:狙击你的心
- 2021-03-02 10:02
这个就可以查出你web_date中指定某年某月第一天、最后一天的数据了:
但如果你的字段year_month是date类型的,就这样写:
select * from web_date a where a.year_month in
(select to_date('201502'||'01','yyyymmdd') from dual
union all(select to_date(to_char(last_day(to_date('201502', 'yyyymm')),'yyyymmdd'),'yyyymmdd')from dual));
但如果你的字段year_month是char类型的,就这样写:
select * from web_date a where a.year_month in
( select '201502'||'01' from dual
union all( select to_char(last_day(to_date('201502', 'yyyymm')),'yyyymmdd')from dual));
'201502'这个是变量,你可以任意更改。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯