Objetivo general: Cree una consulta en Query Builder que filtre en una columna de fecha y hora solo extrayendo datos de los últimos 7 días de la hora actual. Estoy tratando de usar una expresión personalizada en Query Builder para hacer esto. Idealmente, sería solo lo siguiente en el filtro de expresión personalizado, pero no se extraen datos.
t1.TimeCol >= format((Today() - InDays(7)), "m/d/y h:m:s")
Parece que Query Builder toma un formato de fecha y hora específico para su instrucción WHERE, 'ymd h:m:s' (es decir, '2022-07-07 11:13:55'), para el cual JMP no tiene un formato incorporado para. Por lo tanto, creé un formato de fecha personalizado que se muestra a continuación usando este ejemplo . En una tabla de datos, convierte una columna de fecha y hora al formato personalizado como se esperaba. Estoy luchando para llamar al formato en el código jsl, ya que aparece el error "Formato desconocido: myNamespace: QueryDate". ¿Alguna idea? ¡Gracias!
print(format(Today(), "m/d/y"));
print(format(Today(), "myNamespace:QueryDate"));
Formato personalizado:
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>
Si compara una columna de fecha y hora en la base de datos, necesita un valor de fecha y hora para la comparación, pero el formato devuelve una cadena. Así que esto no funcionará hasta donde puedo ver. Debería convertir la cadena de fecha y hora en la base de datos a un valor de fecha y hora.
Pero para su tarea puede evitar este problema, simplemente tomando la fecha actual de la base de datos y restando algunos días, e implementando esto como una expresión personalizada en Query Builder,
pero la sintaxis dependerá de la base de datos.
Para ANSI puede verse así:
t1.datetime > addday(now(), -7)
y para Oracle puede parecer
t1.datetime > sysdate - 7