请问ORACLE中如何获得上月第一天的0点0分0秒

huaostrich 2010-05-14 10:41:05
如题
...全文
954 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sforat 2010-09-09
  • 打赏
  • 举报
回复
select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
Dream_1986 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xiaohou_2007 的回复:]

学习啦~~~
百花齐放呵~~
[/Quote]
百花的魅力
liulongjin2008 2010-09-08
  • 打赏
  • 举报
回复
SELECT add_months(TRUNC(SYSDATE,'mm'),-1)
FROM dual;
支持1楼
zhuhuadeaa 2010-09-08
  • 打赏
  • 举报
回复
SELECT add_months(TRUNC(SYSDATE,'mm'),-1)
FROM dual;

我这个应该比较好理解点,先截取系统的月份,然后再加-1月,就是上个月第一天了。。
xiaohou_2007 2010-09-07
  • 打赏
  • 举报
回复
学习啦~~~
百花齐放呵~~
csuxp2008 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xiaohou_2007 的回复:]
不明白为什么要先减两个月再加一个月啊?

SQL code

select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
[/Quote]

-2是之前2个月,+1是加1天,不是月
minitoy 2010-09-07
  • 打赏
  • 举报
回复
SQL> select trunc(trunc(sysdate,'mm')-1,'mm') from dual;

TRUNC(TRUNC(SYSDATE,'MM')-1,'M
------------------------------
2010-8-1

SQL>
xiaohou_2007 2010-09-07
  • 打赏
  • 举报
回复
不明白为什么要先减两个月再加一个月啊?

select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
xiaohou_2007 2010-09-07
  • 打赏
  • 举报
回复
不明白为什么要先减一个月再加一个月啊?

select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
Adebayor 2010-05-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 orhcle 的回复:]

SQL code
select trunc(add_months(sysdate,-1),'mm') from dual;
[/Quote]
这个最好不过了
碧水幽幽泉 2010-05-15
  • 打赏
  • 举报
回复
取上个月的第一天的三种方法:

select to_char(last_day(add_months(sysdate,-2))+1,'yyyy-mm-dd') from dual;
select add_months(last_day(trunc(sysdate)),-2)+1 from dual;
select trunc(trunc(sysdate, 'month') - 1, 'month') from dual;
liqzhangq 2010-05-15
  • 打赏
  • 举报
回复
顶一下
oracle QQ群:54775466
欢迎爱好者 一起入群探讨
ngx20080110 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 orhcle 的回复:]
SQL code
select trunc(add_months(sysdate,-1),'mm') from dual;
[/Quote]
好!
oraclemch 2010-05-14
  • 打赏
  • 举报
回复
select to_char(trunc(add_months(last_day(sysdate), -2) + 1), 'yyyy-MM-dd hh24:mi:ss') "上月第一天",
to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-MM-dd hh24:mi:ss') "本月第一天",
to_char(last_day(sysdate), 'yyyy-mm-dd hh24:mi:ss') "本月最后一天"
from dual;
da21 2010-05-14
  • 打赏
  • 举报
回复
2楼最佳答案!
siakang 2010-05-14
  • 打赏
  • 举报
回复
select trunc(add_months(sysdate,-1),'mm') from dual;
zjwssg 2010-05-14
  • 打赏
  • 举报
回复
楼主头像我实在无语,早饭已经吐键盘上了
ojuju10 2010-05-14
  • 打赏
  • 举报
回复
select trunc(add_months(last_day(sysdate),-2)+1) from dual;
ORHCLE 2010-05-14
  • 打赏
  • 举报
回复
select trunc(add_months(sysdate,-1),'mm') from dual;
shengyx 2010-05-14
  • 打赏
  • 举报
回复
好[Quote=引用 6 楼 oraclemch 的回复:]
SQL code
select to_char(trunc(add_months(last_day(sysdate), -2) + 1), 'yyyy-MM-dd hh24:mi:ss') "上月第一天",
to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-MM-dd hh24:mi:ss') "本月第一天",……
[/Quote]

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧