4

2 種類の文字列を日付形式に変換しようとしていますが、どちらも実行できません。

問題のある入力文字列と予想される出力は次のとおりです。


入力 1: 20100614191522

期待される出力 1: 2010 年 6 月 14 日7:15:22 PM


入力 2: 2010/12

期待される出力 2: 12/1/2010 12:00:00 AM


私はのように試しました、

select convert(datetime,'20100614191522',109) 

「変換」機能を使用して、さまざまなスタイルパラメーターを試しました。しかし、私は常に次のエラーが発生します。 VARCHAR 値 '20100614191522' を DATETIME フィールドに明示的に変換中に構文エラーが発生しました。メッセージ: 249、レベル: 16、状態: 1

同じことを達成する方法を教えてください。

前もって感謝します。

4

1 に答える 1

3

datetime data試したスタイル パラメータは、文字タイプに変換するためのものです。ここでは、反対の変換を求めています。

入力 1

declare @str varchar(20)
set @str = '20100614191522'
select convert(datetime,substring(@str, 5, 2 ) + '/' + substring(@str, 7, 2 ) + '/' + substring(@str, 1, 4 )  + ' ' + substring(@str, 9, 2 )  + ':' + substring(@str, 11, 2 ) + ':' + substring(@str, 13, 2 ) )

与える

Jun 14 2010  7:15PM

入力 2

declare @str varchar(20)
set @str = '2010/12'
select convert(datetime, @str + '/01')

与える

Dec  1 2010 12:00AM
于 2010-06-22T10:21:28.273 に答える