Utilizzare un parametro Data per una Query in JasperServer
Se si vuole usare un parametro data in un report JasperServer, che poi andrà utilizzato in una Query SQL, procedere come segue:
- Creare i controlli di topo "Date", che si chiameranno Data_Inizio' e 'Data_Fine'
- Creare la Query con il parametro.
- Attenzione, il valore data passato dal controllo sarà nella forma:
- Per l'ora legale (estate)
Sun Jun 01 00:00:00 CEST 2008
- Per l'ora solare (inverno)
Sun Jun 01 00:00:00 CET 2008
- È quindi necessario usare la funzione MySql STR_TO_DATE() (nessuno spazio tra il nome e la parentesi, vedi Errore MySql 1305 - FUNCTION tablename.STR_TO_DATE does not exist ) per convertirlo nel formato data Mysql.
- La query avrà quindi la forma (CHE VA AGGIORNATA AL CAMBIO DELL'ORA):
SELECT
field1, field2
FROM
table
WHERE
field_date
BETWEEN
STR_TO_DATE('$P!{Data_Inizio}', '%a %b %d %H:%i:%s CEST %Y')
AND
STR_TO_DATE('$P!{Data_Fine}' , '%a %b %d %H:%i:%s CEST %Y')
In caso di problemi, attivare il logging di MySQL per vedere la Query generata.