SQLServer、Oracle获取当前年份的1月到当前月之间的所有月份

发布网友 发布时间:2022-04-23 17:34

我来回答

3个回答

热心网友 时间:2022-04-08 12:58

sqlserver:

select convert(varchar(7),dateadd(mm,-t.number,getdate()),120)
from
(select number from master..spt_values where type='P') t
where year(dateadd(mm,-t.number,getdate()))=year(getdate())
order by convert(varchar(7),dateadd(mm,-t.number,getdate()),120)

oracle:

select to_char(add_months(sysdate, -t.rn), 'yyyy-mm')
  from al a, (select rownum - 1 rn from al connect by rownum <= 12) t
 where to_char(add_months(sysdate, -t.rn), 'yyyy') =
       to_char(sysdate, 'yyyy')
 order by to_char(add_months(sysdate, -t.rn), 'yyyy-mm')

热心网友 时间:2022-04-08 14:16

SQLServer版的写法:

SELECT   left(convert(varchar(10),DATEADD(mm,DATEDIFF(mm,0,getdate()),0),120),7)YD into #YD

declare  @Y int

set @Y=1

while @Y<DATEPART(month, GETDATE())

begin

insert #YD

select Left(convert(varchar(10),dateadd(month,-@Y,GETDATE()),120),7)

set @Y=@Y+1

end

select * from #YD order by YD

热心网友 时间:2022-04-08 15:50

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%Y/%m ');
+----------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%Y/%m ') |
+----------------------------------------------+
| 1997/10 |
+----------------------------------------------+

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com