Visualizzazione dei risultati da 1 a 4 su 4

Discussione: MySQL e confronto date

  1. #1

    MySQL e confronto date

    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

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Con molta probabilitá devi prima sistemare la formattazione di dataselez con le opportune istruzioni in asp.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3
    Infatti è proprio così.

    Ho fatto una funzione che mi aggiusta il formato della data così come lo capisce MySQL e adesso funziona a meraviglia

    Grazie per il suggerimento

  4. #4
    ciao, io devo fare praticamente la stessa cosa che devi fare tu, dei controlli con le date ma non riesco a cavare un ragno dal buco...

    SQL="Select * From ... where (((Date_Format(DataInizio,'%m/%d/%y') <= Date_Format(CURDATE(),'%m/%d/%y')) and (Date_Format(DataFine,'%m/%d/%y') > Date_Format(CURDATE(),'%m/%d/%y')) and ControlloData)))"


    cosa sbaglio?
    La tua radio preferita sempre con te
    Forum home page
    - Provoca il più bravo ... morirai come uno schiavo (Hackers)
    - Non è la grana che ti spinge ma la voglia di essere UN NOME INCISO A FUOCO NELLA STORIA (Gemelli Diversi)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.