Excelを使用して古いSQL ServerデータをSQL Serverに転送しようとしています。 _Import/Export Data
_アプリケーションがほとんどのデータ列を自動的にNVARCHAR(255)
に設定するようです。私の問題は、私の列の1つがDATE
型であると想定されていることですが、その中のすべてのデータは次のようになります_18.08.2000 14:48:15
_。
したがって、このクエリを使用しようとすると:
_SELECT CONVERT(Date, DATE_TIME, 113)
FROM someTable
_
私はこのエラーを受け取ります:
メッセージ9807、レベル16、状態0、行1
入力文字列がスタイル113に従っていません。入力文字列を変更するか、別のスタイルを使用してください。
CASTおよびCONVERT(Transact-SQL) の_[styles]
_が私の場合は機能しません。
アドバイスやヘルプは大歓迎です。
解決済み:
_UPDATE myTable
SET columnName = CONVERT(NVARCHAR(255),CONVERT(SMALLDATETIME, columnName,105))
ALTER TABLE myTable
ALTER COLUMN columnName SMALLDATETIME
_
したがって、これがだれにとっても便利になる場合、これはデータ型NVARCHARをDATETIMEに変更する正確なコードです。
UPDATE myTable
SET columnName = CONVERT(NVARCHAR(255),CONVERT(SMALLDATETIME, columnName,105))
ALTER TABLE myTable
ALTER COLUMN columnName SMALLDATETIME
私が知る限り、スタイルはありません。 103(イギリス/フランス語)動作するはずです-いいえ?
DECLARE @input NVARCHAR(255)
SET @input = '18.08.2000 14:48:15'
SELECT CONVERT(DATETIME, @input, 103)
次の出力を取得します。
2000-08-18 14:48:15.000
かなり合理的だと思いますか?
SQL Server 2012を使用している場合は、以下を試してください。
PARSE(Date AS datetime USING 'en-GB')
または、それがうまくいかない場合は、以下を試してください。
PARSE(Date AS datetime USING 'Et-EE')
エストニアの文化は特に「。」を使用しています。日付区切り記号(d.MM.yyyy H:mm:ss
)なので、動作するはずです。
(どちらもSQL Fiddleで正常に動作するようです)