关于日期问题

[复制链接]
查看11 | 回复2 | 2014-2-19 11:55:14 | 显示全部楼层 |阅读模式
列出一个月的日期
2006-xx-01
.
.
.
.
2006-xx-31

不要修改当前系统而出现随意月的日期列表

我使用了变量

select to_char(last_day(add_months(sysdate,:yuefen-1))+(last_day(add_months(sysdate,:yuefen))-(last_day(add_months(sysdate,:yuefen))-rownum)),'yyyy-mm-dd') eve_day
from dual
connect by last_day(add_months(sysdate,:yuefen-1))+rownum+1 <= last_day(add_months(sysdate,:yuefen))+1
这里的:yuefen是指从当前月开始增加或减少几个月的变量
我在这里:yuefen=5的时候就出现5月份的日期
我做是做了。
但不知道有没有更好的。
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
这里的:yuefen是指从当前月开始增加或减少几个月的变量
我在这里:yuefen=5的时候就出现5月份的日期
若要达到你这个目的,那你的sql就是不对的
你可参考今天的这篇文章:http://www.itpub.net/469227.html
回复

使用道具 举报

千问 | 2014-2-19 11:55:14 | 显示全部楼层
最初由 lastwinner 发布
[B]这里的:yuefen是指从当前月开始增加或减少几个月的变量
我在这里:yuefen=5的时候就出现5月份的日期
若要达到你这个目的,那你的sql就是不对的
你可参考今天的这篇文章:http://www.itpub.net/469227.html [/B]

是啊,楼主试试下面这个语句。

select trunc(to_date(&yyyymm,'yyyymm'))+rownum-1 from dual
connect by trunc(to_date(&yyyymm,'yyyymm'))+rownum<=trunc(last_day(to_date(&yyyymm,'yyyymm')))+1;

&yyyymm就是你指定的年月例如:200605
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行