Mi piace utilizzare JMP interattivo per ottenere l'ora di inizio e di fine dell'input e quindi utilizzare SQL per filtrare la tabella dati. Il parametro dateb e datee se definito come ad esempio "2017-10-10", "2017-11-11" funziona correttamente ma quando utilizzo la variabile datab e datee assegnata, non ottengo il filtro corretto (tabelle vuote).
Apprezzo qualsiasi aiuto tu possa fornire. Grazie.
------------------------------------
defuplim = Oggi ();
deflowlim = Oggi () - In giorni ( 730 );
ww = Nuova finestra ( "Scegli le date nel formato aaaa-mm-gg" ,
<< Modale ,
<< restituisce il risultato ,
Casella di riepilogo V (
Casella di testo ( "Data di inizio:" ),
str1 = Casella di modifica numero (
deflusso,
10,
<< ImpostaFunzione (
Funzione ({quello},
lowlim = str1 << ottieni
)
)
),
Casella di testo ( "Data di fine:" ),
str2 = Casella di modifica numero (
defuplim,
10,
<< ImpostaFunzione (
Funzione ( {questo},
uplim = str2 << ottieni
),
)
),
str1 << imposta formato ( Formato ( "aaaa-mm-gg" ) ),
str2 << imposta formato ( Formato ( "aaaa-mm-gg" ) )
),
H Casella di riepilogo ( Casella pulsanti ( "OK" ), Casella pulsanti ( "Annulla" )),
);
dateb = Come data (ww[ "str1" ]);
datee = Come data (ww[ "str2" ]);
datab = formato (datab, "aaaa-mm-gg" );
data = formato (data, "aaaa-mm-gg" );
dt1 = Apri database (
"DSN=XXX;UID=root;PWD=xxxxx;" ,
"Seleziona * da xyz dove data(ora di inizio) tra 'dateb' e 'datee'" , "TMP"
);
Grazie mille Jim. Ha funzionato perfettamente.
Vedi se questa modifica funzionerà
defuplim = Today();
deflowlim = Today() - In Days( 730 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
<<MODAL></MODAL>
È necessario riconvertire le date della stringa in date affinché il database le possa comprendere. Se questo è Oracle hai bisogno di una dichiarazione come:
sql_statement = evalinsert(
"Select *
from xyz
where date(starttime) between to_date('^dateb^', 'YYYY-MM-DD')
and to_date('^datee^', 'YYYY-MM-DD') ");
dt1 = Open Database("DSN=XXX;UID=root;PWD=xxxxx;", sql_statement);