SQL Serverで行う場合何通りか方法があるかと思いますが、
いくつか調べた結果をメモしておきます。
(試したバージョンはSQL Server 2012、ロケールは日本)
DECLARE @d datetime set @d = CONVERT(datetime, '2014-07-01') /* DATENAME */ select DATENAME(yyyy, @d ) -- 2014 select DATENAME(yy, @d ) -- 2014 select DATENAME(m, @d ) -- 07 select DATENAME(mm, @d ) -- 07 select DATENAME(d, @d ) -- 1 select DATENAME(dd, @d ) -- 1 select DATENAME(m, @d) + right('0' + DATENAME(d, @d), 2) -- 0701 /* CONVERT */ select CONVERT(nvarchar(10),@d,12) -- 140701 select CONVERT(nvarchar(10),@d,112) -- 20140701 select CONVERT(nvarchar(10),@d,111) -- 2014/07/01 select right(CONVERT(nvarchar(10),@d,12),4) -- 0701 /* FORMAT */ select FORMAT(@d,'M') -- 7月1日 select FORMAT(@d,'MM') -- 07 select FORMAT(@d,'MMM') -- 7 select FORMAT(@d,'MMMM') -- 7月 select FORMAT(@d,'d') -- 2014/07/01 select FORMAT(@d,'dd') -- 01 select FORMAT(@d,'ddd') -- 火 select FORMAT(@d,'dddd') -- 火曜日 select FORMAT(@d,'MMdd') -- 0701
いかがでしょう。掲載したのはほんの一部ですが、予想と違う結果になっていないでしょうか。
DATENAMEの「m」が2ケタで「d」が1ケタだったり、
DATENAMEの「m」が2ケタで「mm」が2ケタだったり、
FORMATの「M」が7月1日になったり、
FORMATの「d」が2014/07/01になったり。
ちなみに、FORMAT関数は2008 R2以降となっていましたが、updateが当たってないのか
私の環境では2008 R2でもエラーになりました。DATENAME関数
FORMAT関数
CONVERT関数