1

以下のようなものは私の唯一のオプションですか?これを達成するためのより良い、よりクリーンな方法があることを望んでいました。

このため、私の日付は次のようにフォーマットする必要があります --> 201301080105 1/8/13 の 1:05 AM。

SELECT SUBSTRING(REPLACE(CONVERT(varchar, GETDATE(), 111), '/','') + REPLACE(CONVERT(varchar, GETDATE(), 108), ':',''),0,13) AS 'My Formatted Date'

4

4 に答える 4

9

これは元の部分よりも切り刻みの部分が数個少ないですが、プレゼンテーション層で、または実際にはDBではなく一般的なフォーマット機能を使用してどこでもこれを行う方がよいという私のコメントを支持します。

select CONVERT(varchar(20),myDate,112) + REPLACE(CONVERT(varchar(5),myDate,108),':','')

所見:112には既に区切り記号がないため、日付部分の変換に使用するのに適したスタイルです。また、変換の長さを指定しても、変換された文字列が収まらない場合、残りは破棄されます。このようにして、時間と分のスペースのみを許可することで、時間から秒の部分を削除しました。しかし、時間部分に区切り文字を含まないスタイルはありません。

于 2013-01-08T07:26:43.320 に答える
7

これはYYYYMMDDHHMMSSです

SELECT CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(varchar, GETDATE(), 108), ':','')

YYYYMMDDHHMM の場合

SELECT CONVERT(VARCHAR(8), GETDATE(), 112) + LEFT(REPLACE(CONVERT(varchar, GETDATE(), 108), ':',''),4)

また

SELECT CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(LEFT(CAST(GETDATE() AS TIME), 5), ':', '')
于 2013-01-08T07:29:40.280 に答える
1

YYYYMMDDHHMISS の形式でこれを試してください

SELECT replace(replace(replace(CONVERT(VARCHAR(19), GETDATE(), 120),'-',''),' ',''),':','')
于 2013-01-08T10:46:31.210 に答える