1

私は日付のストアプロシージャから値を取得しています。3/25/13 10:06:38 AMこれを変換したいです03/25/2013 10:18:28。これをSQLサーバーで変換するにはどうすればよいですか。これを日時にキャストするとエラーが発生するためです。以下@PODTimeOnly is varchar(255)では、時間のみをキャストしています。この後、日付をキャストして別の変数に保存します。

SET @PODTimeOnly = cast(@PODTime as time)

エラーメッセージ:

Conversion failed when converting date and/or time from character string.

ありがとう

4

1 に答える 1

1

目的の出力を完全に理解しているかどうかはわかりませんが、文字列をハックして異なる形式の日時値を生成する必要がある場合は、これでうまくいく可能性があります。

DECLARE @strDate VARCHAR(50) = '3/25/13 10:06:38 AM',
        @dtDate DATETIME,
        @DateOnly VARCHAR(255),
        @TimeOnly VARCHAR(255),
        @output VARCHAR(255)

-- cast to datetime first to verify its a valid date
SET @dtDate = CAST(@strDate AS DATETIME)

-- parse/cast date and time to seperate variables
SET @DateOnly = CONVERT(VARCHAR(255),@dtDate,101)
SET @TimeOnly = CONVERT(VARCHAR(255),@dtDate,108)

-- duct tape them back together in the desired string format
SET @output = @DateOnly + ' ' + @TimeOnly

-- outputs '03/25/2013 10:06:38'
SELECT @output AS 'NewStringDate'
于 2013-07-26T13:43:14.393 に答える