やあみんな、
データテーブルを SQL にアップロードしようとしていますが、日付列を読み込む際に問題が発生しています。
受け取るエラーは次のとおりです。「[Microsoft][ODBC SQL Server Driver][SQL Server]Operand type Clash: numeric is incompatibility with date」
SELECT CASTを使用して日付形式にしようとしましたが、うまくいきませんでした。 JMP17.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」のような文字列として送信します。