2016-11-13 1 views
1

Google SheetSQL database table으로 변환 중입니다. Excel sheet을로드하면 (Excel에 Google 시트 데이터를 복사하고 가져 오기) SQL 일부 데이터 유형이 변경됩니다. 나는 으로 변환되는 날짜 인 Excel sheet에 열을 가지고 있습니다. 내가 convert하려고하면 그것은 다시 date data type에,이 오류가 발생합니다 :데이터 유형 변환

"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은 Kosher Cert 열의 나의 날짜를 strings 5 자리 숫자로 변환했습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

을 '[코셔 인증]'필드에 저장된 데이터의 샘플을 제공하십시오. 당신이 생각하는 날짜와 함께 숫자라고 말하십시오. – mendosi

+0

예. 정결 한 Cert 분야는 나의 일에 음식을위한 정결 한 증명서를위한 날짜입니다. 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');