日期:2014-05-17  浏览次数:20580 次

怎么用sqlserver写该年月份或该月日期
打个比方:比如当前日期是2012-11-20 获取的月份就是2012-01,2012-02....2012-11
获取的日期就是:2012-11-01,2012-11-02,.....2012-11-20


求回复  最后20分了 
------最佳解决方案--------------------

SELECT 
年月=CONVERT(CHAR(5),GETDATE(),120)+RIGHT('00'+LTRIM(NUMBER),2)
FROM
MASTER..SPT_VALUES WHERE TYPE='P'
AND NUMBER<=MONTH(GETDATE()) AND NUMBER>0

/*
年月        
--------- 
2012-01
2012-02
2012-03
2012-04
2012-05
2012-06
2012-07
2012-08
2012-09
2012-10
2012-11
2012-12

(所影响的行数为 12 行)


提供的是思路。不是一味的要答案.

引用:
引用:
SELECT 年月=CONVERT(CHAR(7),GETDATE(),120) ,年月日=CONVERT(CHAR(10),GETDATE(),120) 
年月      年月日        
------- ---------- 
2012-12 2012-12-01

(所影响的行数为 1 行)
能看清题目么.... 我要的不是当前月和当前……

------其他解决方案--------------------
用substring搭配datepart拼接出来,手机上,打字麻烦
------其他解决方案--------------------
引用:
用substring搭配datepart拼接出来,手机上,打字麻烦


有没有简单点的方法...
------其他解决方案--------------------

SELECT 年月=CONVERT(CHAR(7),GETDATE(),120) ,年月日=CONVERT(CHAR(10),GETDATE(),120) 
年月      年月日        
------- ---------- 
2012-12 2012-12-01

(所影响的行数为 1 行)
------其他解决方案--------------------
引用:
SELECT 年月=CONVERT(CHAR(7),GETDATE(),120) ,年月日=CONVERT(CHAR(10),GETDATE(),120) 
年月      年月日        
------- ---------- 
2012-12 2012-12-01

(所影响的行数为 1 行)

能看清题目么.... 我要的不是当前月和当前日期啊  是要该年当前所有月和该月当前所有日   
------其他解决方案--------------------
如果你的月份和天都固定是两位,那直接获取位数,如果那两部分不补零,就要用日期函数
------其他解决方案--------------------
该回复于2012-12-01 11:23:59被管理员删除
------其他解决方案--------------------
引用:
SELECT 
年月=CONVERT(CHAR(5),GETDATE(),120)+RIGHT('00'+LTRIM(NUMBER),2)
FROM
MASTER..SPT_VALUES WHERE TYPE='P'
AND NUMBER<=MONTH(GETDATE()) AND NUMBER>0

/*
年月        
--------- 
2012-01
2012-……

谢谢大神...