3

私はいつも、SQLServerの日付の書式設定が直感に反していることに気づきました。唯一の答えは、多数の変換関数と文字列関数を使用することであることをすでに知っていると確信していますが、念のために尋ねると思いました。

SQLServerを次のようにフォーマットするdatetimeにはどうすればよいですか。

%Y-%m-%d %I:%M%P or '2012-04-05 11:56am'

私の現在のアプローチでは、データをプルバックしてSELECT CONVERT(VARCHAR(19), GETDATE(), 120)から、サーバー/クライアント側をコードでループします。これは、CSVにデータをエクスポートするときに一部のシナリオで非効率的だと思います。

4

3 に答える 3

2
select 
    cast(datepart(YYYY, GETDATE()) as varchar) + '-' +
    right('0' + cast(datepart(MM, GETDATE()) as varchar), 2) + '-' +
    right('0' + cast(datepart(DD, GETDATE()) as varchar), 2) + ' ' +
    LTRIM(RIGHT(cast(GETDATE() AS varchar), 8))
于 2012-04-05T17:43:59.143 に答える
2
DECLARE @d AS datetime;
SET @d = '2012-04-04 16:43:00'
SELECT LEFT(CONVERT(VARCHAR, @d, 120), 11) 
       +  RIGHT('0' + LTRIM(SUBSTRING(CONVERT(VARCHAR, @d, 131), 12, 5)), 5) 
       + LOWER(RIGHT(CONVERT(VARCHAR, @d, 131), 2))
--2012-04-04 04:43pm
于 2012-04-05T17:45:58.547 に答える
0

SQLServerインスタンスをSQLServer2012にアップグレードしない限り、本当の答えは「あなたはしない」だと思います。

FORMAT(Transact-SQL)

于 2012-04-05T17:18:48.390 に答える