Salut tout le monde,
J'essaie de télécharger ma table de données dans SQL et j'ai des problèmes pour charger les colonnes de date.
L'erreur que je reçois est la suivante : "[Microsoft][ODBC SQL Server Driver][SQL Server]Clash de type d'opérande : le numérique est incompatible avec la date"
J'ai essayé d'utiliser SELECT CAST pour en faire un format de date mais cela n'a pas fonctionné. J'utilise JMP 17.0.0.
J'ai utilisé le code de base de ce post et essayé de l'adapter à ce dont j'avais besoin en vain : 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);Toute aide serait appréciée!
J'envoie des valeurs date et datetime sous forme de chaînes, comme « 1914-12-20 »