2016-11-13 14 views
1

Google SheetSQL database tableに変換しています。 Excel sheet(GoogleシートデータをExcelにコピーしてインポートする)をロードすると、SQLは一部のデータタイプを変更します。 Excel sheetには、SQLがnvarcharに変換される日付の列があります。私は戻ってdate data typeconvertにそれをしようとすると、私はこのエラーを取得する:私のコードが正しいように思わデータ型を変換する

"Conversion failed when converting date and/or time from character string."

...私はあなたを紹介します。

USE Sample 
ALTER TABLE ['RM Item List$'] 
ALTER COLUMN [Kosher Cert] date 

これはなぜ機能しないのですか?私はdata conversionについての質問を知っていますが、吐き気を聞かれましたが、私は私の問題を解決するのに役立つ答えを見ませんでした。 SQLは、コーシャー証明書の列の私の日付をstringsの5つの数字に変換しました。どんな助けもありがとう。

+0

'[Kosher Cert]'フィールドに格納されているデータのサンプルを提供してください。あなたはそれが数字であると言います。 – mendosi

+0

[OK]をクリックします。コーシャー証明書フィールドは、私の仕事でのコーシャー認証の日付です。 2014年1月31日に変換されたSQLは47266になりました。日付形式がnvarcharに変更されました。もう一つの例... SQLは、別の行で2016年12月31日に42735に変更されました。 – Ethan

+0

Excelは内部的に日付をhttp://excel.officetuts.net/en/training/how-excel-stores-date-and-timeという数字で保存しています。Excelの内部番号がテーブルに書き込まれているようです入力した2017年1月31日が実際に42766ではなく47266であると仮定します)。これが事実だと思われるので、私の答えはあなたの最善の方法でなければならないと思う。 – mendosi

答えて

0

これに関連するトピックが役に立つかもしれません: T-SQL to convert Excel Date Serial Number to Regular Date

それはおそらく、日付タイプを使用して、テーブルにカラムを追加し、それを移入し、その後nvarchar列を削除するために、最も理にかなって:

ALTER TABLE ['RM Item List$'] ADD [KosherCert] date; 
UPDATE ['RM Item List$'] 
    SET [KosherCert] = DateAdd(Day, Convert(int, [Kosher Cert]), '1899-12-30'); 
関連する問題