SQL Serverでgetdate()
出力をYYYYMMDDHHmmSS
にフォーマットするにはどうすればよいですか。ここでHH
は24時間形式です。
YYYYMMDD
を完了しました
select CONVERT(varchar,GETDATE(),112)
しかし、それは私が得た限りです。
ありがとう。
select replace(
replace(
replace(convert(varchar(19), getdate(), 126),
'-',''),
'T',''),
':','')
SQL Server 2012を備えたこの機能を検索する場合は、FORMAT関数を使用できます。
SELECT FORMAT ( GETDATE(), 'yyyyMMddHHmmss') AS 'Custom DateTime'
これにより、任意の.NET形式の文字列を使用できるため、便利な新しい追加となります。
あなたが求めているものは閉じていますが、正確ではありません:
_select CONVERT(varchar, GETDATE(), 126)
_
例えば.
_2011-09-23T12:18:24.837
_
(yyyy-mm-ddThh:mi:ss.mmm(スペースなし)、ISO8601、タイムゾーンなし)
参照: CASTおよびCONVERT
CONVERT()
でカスタム形式を指定する方法はありません。もう1つのオプションは、文字列操作を実行して、希望する形式で作成することです。
これを試して:
cONVERT(varchar、GETDATE()、120)を選択します。
2011-09-23 12:18:24(yyyy-mm-dd hh:mi:ss(24h)、ODBC正規)。
ああ。
別のオプション!
SELECT CONVERT(nvarchar(8), GETDATE(),112) +
CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) +
CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) +
CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));
この方法で日時を変換するには、変換するために複数の呼び出しが必要です。これの最適な用途は、varcharを返す関数です。
_select CONVERT(varchar,GETDATE(),112) --YYYYMMDD
select CONVERT(varchar,GETDATE(),108) --HH:MM:SS
_
関数内にそのようにまとめます
_DECLARE @result as varchar(20)
set @result = CONVERT(varchar,GETDATE(),112) + ' ' + CONVERT(varchar,GETDATE(),108)
print @result
_
20131220 13:15:50
Thinhbkが投稿したように、select CONVERT(varchar,getdate(),20)
またはselect CONVERT(varchar,getdate(),120)
を使用して、目的のものに非常に近づけることができます。