こんにちはすべて私はSQl Server 2005でXMLファイルを解析しようとしています。次のように文字列であるxmlのdatetimeフィールドを持っています: '20110805060028.387'。これをSQL Serverのdatetimeフィールドに変換したいのですが、構文に苦労しています。この文字列からdd/mm/yyy hh:mm:ss.ms(ms =マイクロ秒)を得ることは可能ですか?T-SQLを使用して文字列をdatetimeに変換するには?
2
A
答えて
6
サポートされている形式ではありません。
declare @dt varchar(42)= '20110805060028.387'
--convert to '20110805 06:00:28.387'
select cast(stuff(stuff(stuff(@dt, 9, 0, ' '), 12, 0, ':'), 15, 0, ':') as datetime)
>>2011-08-05 06:00:28.387
3
サブストリングは、ここにあなたの友人である:ここで解析可能な日付文字列を作成するときに
DECLARE @Value NVarChar(50)
SET @Value = '20110805060028.387'
SELECT Convert(DateTime,
SubString(@Value, 1, 4) + '-' +
SubString(@Value, 5, 2) + '-' +
SubString(@Value, 7, 2) + ' ' +
SubString(@Value, 9, 2) + ':' +
SubString(@Value, 11, 2) + ':' +
SubString(@Value, 13, 10))
(ちなみに、私は意図的にあなたの「DD/MM/YYY」フォーマットに従わないのですが、むしろ国際(ではありません非常にISO標準の)形式で、サーバーのDATEFORMAT
の設定に関係なくSQLサーバーが正しく読み取ります)
1
DECLARE @parsedValue VARCHAR(MAX)
DECLARE @rawDateValue VARCHAR(MAX)
SET @rawDateValue = '20110805060028.387'
SET @parsedValue = SUBSTRING(@rawDateValue, 1, 4) + '/' +
SUBSTRING(@rawDateValue, 5, 2) + '/' +
SUBSTRING(@rawDateValue, 7, 2) + ' ' +
SUBSTRING(@rawDateValue, 9, 2) + ':' +
SUBSTRING(@rawDateValue, 11, 2) + ':' +
SUBSTRING(@rawDateValue, 13, 2) + ':' +
SUBSTRING(@rawDateValue, 16, 3)
SELECT CONVERT(datetime, @parsedValue)
1
私のテイク(必ずしもベストではない):
DECLARE @val VARCHAR(30)='20110805060028.387'
SELECT LEFT(@val,4) [yyyy], RIGHT(LEFT(@val,6),2)[mm], RIGHT(LEFT(@val,8),2)[dd],
RIGHT(LEFT(@val,10),2)[hh], RIGHT(LEFT(@val,12),2)[mi],
RIGHT(LEFT(@val,14),2)[ss],SUBSTRING(@val, 15,LEN(@val)-14) [ms]
DECLARE @date DATETIME
SELECT @date = CAST(LEFT(@val,4) + '-' + RIGHT(LEFT(@val,6),2) + '-' +
RIGHT(LEFT(@val,8),2) + ' ' + RIGHT(LEFT(@val,10),2) + ':' +
RIGHT(LEFT(@val,12),2) + ':' + RIGHT(LEFT(@val,14),2) +
SUBSTRING(@val, 15,LEN(@val)-14) AS DATETIME)
SELECT @date, DATEPART(MILLISECOND,@date)[ms], DATEPART(MONTH,@date)[MM]
関連する問題
- 1. 文字列をDatetimeに変換する
- 2. 文字列をdatetimeに変換する
- 3. 文字列をdatetimeに変換する
- 4. 文字列をdatetimeに変換する
- 5. c# - DateTime.ParseExactを使用して文字列をdatetimeに変換する
- 6. Datawave Muleを使用して文字列をDatetimeに変換する方法
- 7. Entity Frameworkを使用して文字列をDateTimeに変換します。
- 8. 文字列をdatetime形式に変換
- 9. 文字列をdateTimeに変換
- 10. asian文字のUTF-16LE文字列をDateTimeに変換する
- 11. 文字列を分割してdatetimeに変換します
- 12. DateTime文字列変換エラー
- 13. オフセットに基づいてdatetime文字列をdatetimeに変換します
- 14. タイムスタンプ文字列をdatetimeオブジェクトに変換するには?
- 15. djangoのPythonでdatetimeを文字列に変換するには
- 16. 時間文字列をdatetimeに変換するには?
- 17. PHPのDateTimeオブジェクトをISO文字列に変換するには?
- 18. 文字列 "00:05:06,607"をDateTimeに変換するには?
- 19. C#DateTimeOffsetを使用せずに文字列をDateTimeに変換する
- 20. Pythonはdatetimeに文字列を変換します
- 21. TSQL - 文字列をyyyy/dayの日付に変換する
- 22. テキストボックスの文字列をSQLのdatetime列に変換します
- 23. Octave datetime文字列のデータフレーム列を秒に変換します
- 24. javaを使用して文字列を文字列に変換する方法
- 25. lodashを使用して文字列を別の文字列に変換する
- 26. ゼロパディングなしの文字列をPython datetimeオブジェクトに変換する
- 27. PHPが未知のdatetime文字列をdatetimeオブジェクトに変換しています
- 28. Djangoは文字列をdatetimeに自動変換する
- 29. dateTimeの文字列の日付を変換するには?
- 30. NULLをスキップしている間に文字列をdatetimeに変換します
うーん、いい、私はいつもスタッフを忘れる... – Tao
私はものを忘れることはありませんが、これを達成することはできませんでした。いつものように素敵な答え! – TheVillageIdiot