Premesso che ho consultato tutti i thred che parlano dell'argomento "data" senza trovare soluzione vi chiedo un autino per risolvere questo problema:
ho un database MySQL che contiene una tabella con un campo data nel formato yy-mm-dd hh:mm e vorrei poter selezionare dei record corrispondenti ad una certa data passata memorizzata un una variabile da uno script appartenente ad un'altra pagina.
Questa variabile, chiamata dataselez è di tipo testo e può avere anche un valore nullo (""). Quando però è piena contiene una stringa secondo col formato d/m/yy, diverso da quello contenuto nel db. Questa diversità di formati mi rende difficile la selezione dei record. La stringa della query che ho usato viene costruita così:
if dataselez <> "" then
sql = "SELECT ...campi_della_tabella...FROM ...tabella... "
sql = sql & "WHERE DATE_FORMAT(Tempo_Riferimento,'%d-%m-%y') = DATE_FORMAT(" & "'" & dataselez & "'" & ",'%d-%m-%y') "
else
sql = "SELECT ...campi_della_tabella...FROM ...tabella... "
sql = sql & "WHERE Tempo_Riferimento BETWEEN ADDDATE(CURDATE(),INTERVAL -7 DAY) AND CURDATE() "
end if
quando la variabile dataselez contiene qualcosa devono essere selezionati tutti i record che hanno quella data altrimenti si selezionano i primi sette record aventi qualsiasi data.
La sistassi è corretta perchè non mi da nessun errore però non viene selezionato alcun record. Sicuramente perchè il confronto non viene effettuato con il formato data uguale.
C'è un'istruzione da usare all'interno della query (in MySQL) che mi possa convertire sia la data prelevata dal database (Tempo_Riferimento ) sia quella contenuta nella variabile (dataselez ) nello stesso formato per rendere omogeneo il confronto?
Vi ringrazio per l'aiuto![]()

Rispondi quotando