当前位置: 代码迷 >> J2EE >> sql中怎样取当前日期及前12月的日期解决方法
  详细解决方案

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

热度:76   发布时间:2016-04-22 01:49:17.0
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
  相关解决方案