안녕하세요 여러분,
데이터 테이블을 SQL에 업로드하려고 하는데 날짜 열을 로드하는 데 문제가 있습니다.
내가 받은 오류는 다음과 같습니다. "[Microsoft][ODBC SQL Server 드라이버][SQL Server]피연산자 유형 충돌: 숫자가 날짜와 호환되지 않습니다."
SELECT CAST를 사용하여 날짜 형식으로 만들어 보았지만 작동하지 않았습니다. 저는 JMP 17.0.0을 사용하고 있습니다.
나는 이 게시물의 기본 코드를 사용하고 필요한 것에 맞게 조정하려고 했지만 소용이 없었습니다. https://community.jmp.com/t5/Discussions/How-to-Insert-Append-Write-data-to-SQL-Server-database-in-table/mp/262281#M51331
dt = data table ("Untitled 2");
col_list = dt << get column names(string);
col_names = concat items(col_list, ", ");
insert_prefix = evalinsert(
"SELECT CAST(dt:Date as date)";
"SELECT CAST(dt:Accrual_Period_Date as date)";
"INSERT INTO [Sandbox].[dbo].[XXXXXXXX] (^col_names^) VALUES ");
dbc = create database connection("ODBC:Description=;DRIVER=SQL Server;SERVER=XXXXX;UID=XXXX.XXXX;PWD=XXXXX;APP=JMP;WSID=XXXXXX;DATABASE=Sandbox;");
for (i = 1, i <= nrows(dt), i++,
for (k = 1, k <= ncols(dt), k++,
one_col = col_list[k];
one_value = column(dt, one_col)[i];
// Surround strings with single quotes
if (type(one_value) == "String",
one_value = "'" || one_value || "'";
,
// Convert numeric to string, handle missing values (.)
one_value = char(one_value);
if (one_value == ".", one_value = "NULL");
);
if (k == 1,
sql_string = one_value;
,
sql_string = sql_string || ", " || one_value;
);
);
insert_sql = insert_prefix || "(" || sql_string || ")";
show(insert_sql);
// Do the insert. Execute SQL does an implicit commit
execute sql(dbc, insert_sql);
);
close database connection(dbc);어떤 도움이라도 주시면 감사하겠습니다!
날짜 및 날짜/시간 값을 '1914-12-20'과 같은 문자열로 보냅니다.