Formato data personalizzato nello script JSL (per il generatore di query)Obiettivo generale: creare una query in Query Builder che filtri in base a una colonna data/ora estraendo solo i dati dagli ultimi 7 giorni dell'ora corrente. Sto cercando di utilizzare un'espressione personalizzata in Query Builder per fare questo. Idealmente sarebbe solo quanto segue nel filtro dell'espressione personalizzata, ma non risulta in nessun dato estratto.
t1.TimeCol >= format((Today() - InDays(7)), "m/d/y h:m:s")
Sembra che Query Builder utilizzi un formato data/ora specifico per la sua istruzione WHERE, 'ymd h:m:s' (ovvero '2022-07-07 11:13:55'), per la quale JMP non ha un formato integrato per. Pertanto ho creato un formato di data personalizzato mostrato di seguito utilizzando questo esempio . In una tabella di dati converte una colonna di data e ora nel formato personalizzato come previsto. Sto lottando per chiamare il formato nel codice jsl anche se ottengo un errore "Formato sconosciuto: myNamespace:QueryDate". Qualche intuizione? Grazie!
print(format(Today(), "m/d/y"));
print(format(Today(), "myNamespace:QueryDate"));
Formato personalizzato:
Add Custom Functions(
New Custom Function(
"myNamespace",
"QueryDate",
Function( {inputVar},
{Default Local},
Char( Year( inputVar ) ) || "-" || Char( Month( inputVar ) ) || "-" ||
Char( Day( inputVar ) ) || " " ||
Char(Hour(inputVar)) || ":" || Char(Minute(inputVar)) || ":" || Char(Second(inputVar))
),
<<DESCRIPTION></DESCRIPTION>
Personalizzazione di massaRi: Formato data personalizzato nello script JSL (per il generatore di query)o vedi altri post:
Risolto: problema dello script di query SQL con il formato della data - Comunità di utenti JMP
Risolto: selezione interattiva della data e filtraggio tramite SQL - Comunità di utenti di JMP
Ri: Formato data personalizzato nello script JSL (per il generatore di query)Se si confronta una colonna datetime nel database, è necessario un valore datetime per il confronto, ma il formato restituisce una stringa. Quindi questo non funzionerà per quanto posso vedere. Dovresti convertire la stringa datetime nel database in un valore datetime.
Ma per il tuo compito puoi evitare questo problema, semplicemente prendendo la data corrente dal database e sottraendo alcuni giorni, e implementandola come espressione personalizzata nel Generatore di query,
ma la sintassi dipenderà dal database.
Per ANSI potrebbe assomigliare a questo:
t1.datetime > addday(now(), -7)
e per Oracle potrebbe sembrare
t1.datetime > sysdate - 7