Pages - Menu

2012年8月14日 星期二

SQL YYYYMM的怪問題

先前寫把日期改成YYYYMM的格式,會寫這樣

select rtrim(ltrim(str(year(getdate()))))+REPLACE(STR(datepart(mm, getdate())-1, 2, 0), ' ', '0')
但近日再寫一段SQL的時候只要套用這個,資料都跑不出來,
後來改成這段
select cast(year(dateadd(mm,-1,getdate()))as varchar)+replicate('0',2-len(month(dateadd(mm,-1,getdate()))))+cast(month(dateadd(mm,-1,getdate()))as varchar)
就正常了.......
也試過這段
select RTRIM(LTRIM(((CASE WHEN datepart(mm, getdate()) - 1 = 0 THEN str(year(getdate()) - 1) + '12' ELSE str(year(getdate())-0 ) + REPLACE(STR(datepart(mm,getdate()) - 1, 2, 0), ' ', '0') END))))
一樣出問題......
str跟cast的差異..還需要慢慢找了

沒有留言:

張貼留言