Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    [mySql] problema semplice query con data

    Ho un db con un campo DateTime "data_attivo"..

    se faccio questa semplice query, non funziona correttamente...

    come mai???


    SELECT *
    FROM `tab_offerte`
    WHERE `data_attivo` > '12/12/2008'

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    SELECT *
    FROM `tab_offerte`
    WHERE date_format(`data_attivo`,"%Y-%m-%d") > '2008-12-12'

  3. #3
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Ho provato così... ma non funziona..

    SELECT * FROM tab_offerte WHERE '2008/01/16' BETWEEN date_format( `data_attivo` , '%Y-%m-%d' ) AND date_format( `data_fine` , '%Y-%m-%d' )


    data_attivo = 2008-01-01 00:00:00

    data_fine = 2008-03-01 00:00:00



    il record dovrebbe essere compreso... ma non tira fuori nulla...

  4. #4
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    aiuto...

  5. #5
    Originariamente inviato da henry78
    aiuto...
    come sono memorizzate le date nel db? cioe' con quale formato?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    nel formato "datetime"...

    il db lo sto preparando ora... se c'e' da cambiare il formato del campo... nessun problema!

  7. #7
    codice:
    SELECT * 
    FROM tab_offerte 
    WHERE NOW() BETWEEN `data_attivo` AND `data_fine`

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    così funziona! grazie!

    però devo passargli io la data..

    SELECT *
    FROM tab_offerte
    WHERE '2008/16/01' BETWEEN `data_attivo` AND `data_fine`


    però così non funziona..

  9. #9
    Originariamente inviato da henry78
    così funziona! grazie!

    però devo passargli io la data..

    SELECT *
    FROM tab_offerte
    WHERE '2008/16/01' BETWEEN `data_attivo` AND `data_fine`


    però così non funziona..
    non dovrebbe contare molto, ma se non ti serve ore-min-sec usa un campo DATE. Anche perche' una data_fine per essere corretta dovrebbe essere yyyy-mm-dd 23:59:59 e non 00:00:00 altrimenti ti fumi l'ultimo giorno.

    Prova a passare la data con il trattino invece che con lo slash come separatore. Passi una stringa che non viene valutata come data, ma come stringa.

    WHERE '2008-16-01' BETWEEN ......

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    così sembra funzionare:

    SELECT *
    FROM tab_offerte
    WHERE '2008-02-28'
    BETWEEN date_format( `data_attivo` , '%Y-%m-%d' )
    AND date_format( `data_fine` , '%Y-%m-%d' )

    che fatica...

    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.