2016-05-19 9 views
0

問題が発生しました。このExcelシートをSQL Serverに数回インポートしました。EXCEL datetime行がSQL Serverにインポートされた後に "42507"に変更されました。

突然、無効なデータが2行(datetime)あります。 Excelでは、datetime行はすべて2016/12/12

に変更されました。ただし、データをSQL Serverにインポートすると、一部は42507形式に変更され、datediffを使用して計算できませんでした。

私はこれをかなり混乱させました。あなたのアイデアのいずれかが大いに感謝されます。

ありがとうございます。

答えて

1

Excelの保存日付整数として、1899年12月30日からの日数は、あなたが簡単にインポートするためのテキスト値を保存するためにExcelで=TEXT(A1,”yyyy-mm-dd hh:MM:ss”)を使用することができ、すでにSQLに整数がある場合は、DATEADD(day,yourDate,'1899-12-30')を使用して適切な日付に変換することができます。

.xlsx(および.docx、pptxなど)ファイルはアーカイブにすぎず、ドキュメントの内容はXMLファイルに保存されます。拡張子を.zipに変更してアーカイブを開いて、データが実際に格納される方法を調べることができます。ほとんどの場合ではありませんが、セルの書式設定は基礎となる値に影響しません。

1

Excelのフィールドがdateに設定されていることを確認し、シートをインポートします。 ます。また、日時として5桁をキャストすることができます

UPDATE <yourTable> 
SET <dateColumn> = CAST(<dateColumn> as datetime) 
WHERE LEN(<dateColumn>) = 5 
+0

これは、ゼロ日がExcelとSQL Serverの間で一貫しないため、間違った日付を与えます。 –

関連する問題