2

varchar が20130909132512あり、それを単なる日付に変換したい2013-09-09

しようとするとエラーが発生し続ける

select convert(datetime,'20130909132512',105)

そして私は使用を避けようとしています

select convert(datetime,SUBSTRING('20130909132512',0,8),105)

もし可能なら。どうすればこれを行うことができるかについてのアイデアはありますか?

4

2 に答える 2

3

STUFFを使用して varchar を20130909 13:25:12に変換できます

Declare @a Varchar(20)
Select @a = '20130909132512'
select convert(datetime,
              STUFF(STUFF(STUFF(@a,13,0,':'),11,0,':'),9,0,' ')
              ,105)
于 2013-09-20T16:48:29.050 に答える
1

bummi のSTUFF方法を使用するか、引き続きSUBSTRING.

この場合、SUBSTRING少し速く実行されます

SELECT CONVERT(date, SUBSTRING('20130909132512', 0, 9), 20)

ただし、2013-09-09 の形式の日付が必要な場合は、変換スタイルとして「20」を使用することをお勧めします。

于 2013-09-20T17:10:52.487 に答える