SQLServerで日付をフォーマットされた文字列に変換する

スポンサーリンク

PR

SQLServerの日付型データをフォーマットされた文字列に変換したい時はありませんか?

今回仕事で日付型を文字列に変換する機会がありましたので、調べた結果をまとめました。

どのようなフォーマットに変換するにはスタイルを番号で指定するようです。

よく使われると思われる日付をフォーマットされた文字列に変換する方法を書いておきます。

スポンサーリンク

CONVERTを使って日付をフォーマットして文字列に変換する方法

一番良く使うのが CONVERT を使って、日付を文字列に変換する方法です。

シンタックスは CONVERT ( data_type [ ( length ) ] , expression, style) で、 expression に変換したい日付が、
style には番号が入ります。

CONVERT を使った日付を文字列に変換するクエリーは以下の通りです。

DECLARE @Date DATETIME = GETDATE();

SELECT CONVERT(NVARCHAR, @Date, 101) AS ‘101’,– mm/dd/yyyy
CONVERT(NVARCHAR, @Date, 1) AS ‘1’,– mm/dd/yy
CONVERT(NVARCHAR, @Date, 111) AS ‘111’,– yyyy/mm/dd
CONVERT(NVARCHAR, @Date, 11) AS ’11’,– yy/mm/dd
CONVERT(NVARCHAR, @Date, 103) AS ‘103’,– dd/mm/yyyy
CONVERT(NVARCHAR, @Date, 3) AS ‘3’; — dd/mm/yy

SELECT CONVERT(NVARCHAR, @Date, 112) AS ‘112’,– yyyymmdd
CONVERT(NVARCHAR, @Date, 12) AS ’12’,– yymmdd
CONVERT(NVARCHAR, @Date, 108) AS ‘108’,– HH:mi:ss
CONVERT(NVARCHAR, @Date, 114) AS ‘114’;– HH:mi:ss:mmm

スポンサーリンク

FORMAT を使って日付をフォーマットして文字列に変換する方法

次に『 SQLServer2012から』 は、FORMAT 関数を使って日付を変換することができます。

まずは、FORMAT 関数でカルチャーを指定して文字列に変換する方法です。

DECLARE @Date DATETIME = GETDATE();

SELECT FORMAT(@Date, ‘d’, ‘ja-JP’ ) AS ‘Japanese (Japan)’,
FORMAT(@Date, ‘d’, ‘en-US’ ) AS ‘English (US)’;

そして、最後になりましたが、FORMAT 関数ではカスタムの書式指定文字列を指定して、
日付や時刻をカスタムフォーマットすることも可能です。 とっても便利ですね!

DECLARE @Date DATETIME = GETDATE();
SELECT FORMAT(@Date, ‘yyyyMMddHHmmss’) AS ‘Custom’;

注意
年のyyyyは小文字、月のMMは大文字、ddの日は小文字です。
大文字、小文字をきちんと書かないと正確に変換されません。

 

最後に

仕事でSQLServerを使うようになりました。

oracleのSQLと若干違う部分がありますので仕事でつまずいた時には

調べてまた記事にしたいと思います。

 

コメント

タイトルとURLをコピーしました