getdate()
SQL Serverで、出力を24時間形式にフォーマットするYYYYMMDDHHmmSS
にはどうすればよいですか?HH
私はやっYYYYMMDD
た
select CONVERT(varchar,GETDATE(),112)
しかし、それは私が得た限りです。
ありがとう。
getdate()
SQL Serverで、出力を24時間形式にフォーマットするYYYYMMDDHHmmSS
にはどうすればよいですか?HH
私はやっYYYYMMDD
た
select CONVERT(varchar,GETDATE(),112)
しかし、それは私が得た限りです。
ありがとう。
SQL Server 2012を備えたこの機能をお探しの方は、FORMAT関数を使用できます。
SELECT FORMAT ( GETDATE(), 'yyyyMMddHHmmss') AS 'Custom DateTime'
これにより、任意の.NET形式の文字列が可能になり、便利な新しい追加になります。
select replace(
replace(
replace(convert(varchar(19), getdate(), 126),
'-',''),
'T',''),
':','')
閉じますが、正確にはあなたが求めているものではありません:
select CONVERT(varchar, GETDATE(), 126)
例えば
2011-09-23T12:18:24.837
(yyyy-mm-ddThh:mi:ss.mmm(スペースなし)、タイムゾーンなしのISO8601)
参照:キャストと変換
でカスタム形式を指定する方法はありませんCONVERT()
。もう1つのオプションは、文字列操作を実行して、必要な形式で作成することです。
これを試して:
CONVERT(varchar、GETDATE()、120)を選択します。例:
2011-09-23 12:18:24(yyyy-mm-dd hh:mi:ss(24h)、ODBC正規)。
H番目。
別のオプション!
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)
を使用して、必要なものにかなり近づけることができます。
select CONVERT(nvarchar(8),getdate(),112) +
case when Len(CONVERT(nvarchar(2),DATEPART(HH,getdate()))) =1 then '0' + CONVERT(nvarchar(2),DATEPART(HH,getdate())) else CONVERT(nvarchar(2),DATEPART(HH,getdate())) end +
case when Len( CONVERT(nvarchar(2),DATEPART(MI,getdate())) ) =1 then '0' + CONVERT(nvarchar(2),DATEPART(MI,getdate())) else CONVERT(nvarchar(2),DATEPART(MI,getdate())) end