web-dev-qa-db-ja.com

getdateをYYYYMMDDHHmmSSにフォーマットする方法

SQL Serverでgetdate()出力をYYYYMMDDHHmmSSにフォーマットするにはどうすればよいですか。ここでHHは24時間形式です。

YYYYMMDDを完了しました

select CONVERT(varchar,GETDATE(),112)

しかし、それは私が得た限りです。

ありがとう。

14
Wayne
select replace(
       replace(
       replace(convert(varchar(19), getdate(), 126),
       '-',''),
       'T',''),
       ':','')
20
Mikael Eriksson

SQL Server 2012を備えたこの機能を検索する場合は、FORMAT関数を使用できます。

SELECT FORMAT ( GETDATE(), 'yyyyMMddHHmmss') AS 'Custom DateTime'

これにより、任意の.NET形式の文字列を使用できるため、便利な新しい追加となります。

25
Richard

あなたが求めているものは閉じていますが、正確ではありません:

_select CONVERT(varchar, GETDATE(), 126)
_

例えば.

_2011-09-23T12:18:24.837
_

(yyyy-mm-ddThh:mi:ss.mmm(スペースなし)、ISO8601、タイムゾーンなし)

参照: CASTおよびCONVERT

CONVERT()でカスタム形式を指定する方法はありません。もう1つのオプションは、文字列操作を実行して、希望する形式で作成することです。

6
Mitch Wheat

これを試して:

cONVERT(varchar、GETDATE()、120)を選択します。

2011-09-23 12:18:24(yyyy-mm-dd hh:mi:ss(24h)、ODBC正規)。

ああ。

3
Thinhbk

別のオプション!

SELECT CONVERT(nvarchar(8), GETDATE(),112) + 
   CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));
1
Han

この方法で日時を変換するには、変換するために複数の呼び出しが必要です。これの最適な用途は、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)を使用して、目的のものに非常に近づけることができます。

0
TWood