0

nvarchar 日付を日付時刻に変換しようとしていますが、このエラーが発生します: CAST や Convert (以下のコード) を含む複数の方法を試しましたが、役に立ちませんでした。助言がありますか ?

日付形式 : 2017 年 7 月 19 日 (水) 16:23:38 +0000

コード:

INSERT INTO feed.article(title,link,sourceID,[date])
    SELECT title,link,s.sourceID,
    CONVERT(DATETIME,[date],121)
    FROM feed.tempXML t
    JOIN feed.[source] s ON s.sourceName = t.[source]

与えられたエラー:

文字列から日時を変換する際に変換に失敗しました。

4

4 に答える 4

2

MS SQL Server 2012 以降を使用している場合は、TRY_PARSE を使用できます。

SELECT CAST(TRY_PARSE ('Wed, 19 Jul 2017 16:23:38 +0000' AS datetimeoffset) AS datetime)
于 2017-07-19T18:37:17.497 に答える
1

これを、日付用と時刻用の 2 つの部分で行います。

SELECT title,link,s.sourceID,
       (CONVERT(DATETIME, SUBSTRING([date], 5, 10), 106) +
        CONVERT(DATETIME, SUBSTRING([date], 18, 8))
       )
FROM feed.tempXML t JOIN
     feed.[source] s
     ON s.sourceName = t.[source];

これにより文字列操作が最小限に抑えられるため、非常に単純なアプローチのように思えます。

于 2017-07-19T18:40:20.697 に答える