读书人

sql中怎样取当前日期及前12月的日期解

发布时间: 2012-04-11 17:42:33 作者: rapoo

sql中怎样取当前日期及前12月的日期
如题 小弟遇到一难题 就是想在数据库中查询出当前的日期(格式:2012-04) 及前12个月的日期 并在一列中输出 例如格式
日期
2012-04
2012-03
2012-02
2012-01
2011-12
2011-11
2011-10
2011-09
2011-08
2011-07
2011-06
2011-05


[解决办法]
to_char(sysdate,'yyyy-mm') 这个可以取到当前日期
[解决办法]
如果要一次输出,那么需要用procedure。
或者还有个办法,我们有一个时间表,里面存了20年的时间信息。
就可以用select to_char(column, 'yyyy-mm') from xx where 日期范围(但前日期前12月)
[解决办法]

SQL code
SELECT   TO_CHAR(SYSDATE,'YYYY-MM') YM, TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM') YM1,TO_CHAR(ADD_MONTHS(SYSDATE,-2),'YYYY-MM') YM2,TO_CHAR(ADD_MONTHS(SYSDATE,-3),'YYYY-MM') YM3,TO_CHAR(ADD_MONTHS(SYSDATE,-4),'YYYY-MM') YM4,TO_CHAR(ADD_MONTHS(SYSDATE,-5),'YYYY-MM') YM5,TO_CHAR(ADD_MONTHS(SYSDATE,-6),'YYYY-MM') YM6,TO_CHAR(ADD_MONTHS(SYSDATE,-7),'YYYY-MM') YM7,TO_CHAR(ADD_MONTHS(SYSDATE,-8),'YYYY-MM') YM8,TO_CHAR(ADD_MONTHS(SYSDATE,-9),'YYYY-MM') YM9,TO_CHAR(ADD_MONTHS(SYSDATE,-10),'YYYY-MM') YM10,TO_CHAR(ADD_MONTHS(SYSDATE,-11),'YYYY-MM') YM11FROM   DUAL;
[解决办法]
探讨

一楼的大侠只能查出一行 二楼的大侠倒是一种办法 但前提是必须建立这么一张时间表 不建 的话 有没有其他方法呢

[解决办法]
那还不简单,用union all不就行了。

SQL code
SELECT TO_CHAR(SYSDATE,'YYYY-MM') YM FROM DUALUNION ALLSELECT TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM') YM1 FROM DUAL 

读书人网 >J2EE开发

热点推荐