0

私は現在、SSISパッケージを介してcsvファイルをSQLにインポートしています。フィールドはtIS日時です。ただし、日時フィールドの末尾には GMT (2013 年 11 月 8 日 15:47:53 GMT) があるため、以下を実行して削除します。

CAST(REPLACE(Date, ' GMT', '') AS DATETIME) AS yDate

これにより、次の形式が得られ2013-11-08 15:47:53.000ます-YYYY-MM-DDである必要があります

ただし、SQLは2013年11月8日ではなく2013年8月11日と見なしているように見えるため、日付をYYYY-DD-MM形式に変換する際に実際の問題が発生しています。GMTを削除する置換コードと関係があると思っていますが、試してみるとすべて同じ結果になりますか?

誰かが似たようなものに出くわしましたか?

4

1 に答える 1

1

残念ながら、スペースを使用して日付と時刻を区切るときの動作はDATEFORMAT、データベース接続で現在有効になっている特定の設定によって異なります。

Tセパレーター ( 2013-11-08T15:47:53.000) は、明確な解析を強制する必要があります。

CAST(REPLACE(REPLACE(Date, ' GMT', ''),' ','T') AS DATETIME) AS yDate

もう 1 つの方法は、使用に切り替えてCONVERT明示的なスタイルを指定することです。

CONVERT(datetime,REPLACE(Date, ' GMT', ''),121) AS yDate
于 2013-11-11T11:04:27.967 に答える