わたろぐ

仕事、読書、ガジェット、グルメ、写真、旅行など雑多な備忘

convertでdatetime型を文字列型に変換するときによく使うstyle

SQLServerでdatetime型からvarchar型に型変換を行うときに、convert関数を使うが、単純に

convert(varchar,getdate())

とすると出力結果は

2012-07-23 22:13:12

という出力になってまう。

convert関数の構文は以下。(CAST および CONVERT (Transact-SQL)より)

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

第三引数のstyleでフォーマットを指定する。

このstyleの値が数値なのだが、よく使うものをまとめておく。

styleの値

フォーマット

出力例

111

yyyy/MM/dd

2012/07/23

112

yyyyMMdd

20120723

108

hh:mm:ss

15:18:05

以下、使用例。

-- [1] yyyy/MM/dd形式
-- [出力結果] 2012/07/23
select convert(varchar,getdate(),111)

-- [2] yyyyMMdd形式
-- [出力結果] 20120723
select convert(varchar,getdate(),112)

-- [3] hh:mm:dd形式
-- [出力結果] 15:18:05 
select convert(varchar,getdate(),108)

-- [4] (応用)hh:mm形式
-- [出力結果] 15:18
select LEFT(convert(varchar,getdate(),108),5)