Visualizzazione dei risultati da 1 a 4 su 4

Discussione: verifica con 2 date

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115

    verifica con 2 date

    ho provato ad estrarre dei dati dal db in base alla data odierna,

    $sql="SELECT * FROM banner WHERE regione LIKE '".$id_regione."' AND data_sca >= '$data'";

    il campo del db e un campo date "0000-00-00".

    e per il momento funziona.

    ma se trasformo le date "00-00-0000" e faccio verificare da

    if ($data2 >= $data1){
    echo "Maggiore";
    } else {
    echo "Inferiore";
    }

    non funziona più, e dice che il 30-06-2004 è inferiore a 31-05-2004.

    Mi chiedo se è giusto usare un campo tipo "date" per il db ?
    oppure è meglio usare altri formati ?

    Ringrazio per la cortesia.

  2. #2
    Prova a verificare le tue date con occhio matematico.....

    30-06-2004 e 31-05-2004

    ora togli il separatore -. Avrai:

    30062004
    31052004

    Qual'e' il valore minore? Ora fai come usa il database MySQL:

    2004-06-30 e 2004-05-31

    togli il separatore - e questa volta avrai:

    20040630
    20040531

    Ora vedrai correttamente minore la data del 31-05-2004.

    Questo per dire che nella valutazione delle date l'anno e' il valore piu' significativo, poi il mese e poi i giorni.... e non viceversa.

    Se invece utilizzi il timestamp unix la data sara' rappresentata in numero dei secondi a decorrere dal 01-01-1970, e quindi sara' un valore assoluto.


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

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115
    grazie 1000,

    cmq, è meglio usare "date" oppure timestamp ?

    ciao e grazie

  4. #4
    Originariamente inviato da gaza1960
    grazie 1000,

    cmq, è meglio usare "date" oppure timestamp ?

    ciao e grazie
    dipende dall'utilizzo.

    per memorizzare una data di nascita basta un campo DATE, un inserimento DATETIME e' forse il piu' completo per altri utilizzi. Il timestamp ha dei limiti temporali ristretti, facilita il calcolo tra date (ma esistono funzioni bellissime in mysql per questo).

    Se hai voglia leggi la pillola , magari ti schiarisci di piu' le idee.

    evita di memorizzare le date in campi varchar... la ricerca si baserebbe sui valori ascii e non numerici/data.

    Ciao

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

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.