Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    TIMESTAMP non TIMESTAMP

    Ragazzi ho un problema con il TIMESTAMP che mi fa impazzire, credo sia nel database l'errore, ossia ho un campo TIMESTAMP che però memorizza la data così: 2008-12-05 14:17:16 e la stampa così nella pagina, quindi non fa funzionare la funzione date()... Che devo fare?????

  2. #2

    Re: TIMESTAMP non TIMESTAMP

    Originariamente inviato da lorenzos
    Ragazzi ho un problema con il TIMESTAMP che mi fa impazzire, credo sia nel database l'errore, ossia ho un campo TIMESTAMP che però memorizza la data così: 2008-12-05 14:17:16 e la stampa così nella pagina, quindi non fa funzionare la funzione date()... Che devo fare?????
    quello e' il timestamp in formato ISO utilizzato da mysql. Tu dovresti usare un UNIX TIMESTAMP per date().

    estrai la data con:

    SELECT *, UNIX_TIMESTAMP(campo_timestamp) as time from....

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

  3. #3
    Quindi devo fare una query specifica per il TIMESTAMP, giusto?

    Oppure (non insultatemi) posso memorizzarlo in un int???

  4. #4
    Originariamente inviato da lorenzos
    Quindi devo fare una query specifica per il TIMESTAMP, giusto?

    Oppure (non insultatemi) posso memorizzarlo in un int???
    puoi fare come vuoi, i modi sono solo 2.

    1) memorizzi un timestamp OSI e lo converti all'estrazione in UNIX TIEMSTAMP
    2) memorizzi un UNIX TIMESTAMP in un campo INT.

    ovviamente cambiera' il modo in cui inserirai i dati nel db. Il primo per mysql e' una data, il secondo assolutamente e solo un numero intero.



    edit.... voglio dire o inserisci una data oppure un numero. non avviene una conversione automatica ma solo tramite l'uso di specifiche funzioni

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

  5. #5
    A livello di chiarezza la seconda soluzione mi sembra la migliore, io posso recuperare i dati con una singola chiamata al database, però è anche vero che utilizzo un campo INT mentre SQL prevede numerosi campi per le date...

    Tu come faresti?

  6. #6
    Originariamente inviato da lorenzos
    A livello di chiarezza la seconda soluzione mi sembra la migliore, io posso recuperare i dati con una singola chiamata al database, però è anche vero che utilizzo un campo INT mentre SQL prevede numerosi campi per le date...

    Tu come faresti?
    personalmete utilizzo il formato OSI praticamente "sempre" se non fosse altro che per il range di date possibile senza incorrere in pesanti limiti. Poi dipende da quello che devi fare. Se memorizzi una data/ora del tipo "momento di connessione" o altro simile in cui serve anche ora:min:sec un numerico e' piu' performante. Ma trovo inutile e a volte insidioso da gestire ora:min:sec quando l'interesse e' rivolto alla data.

    Insomma non esiste una regola "buona per tutte le stagioni" ma si deve valutare lo scopo per cui si memorizza questo valore.

    occhio .... non ho notato che ripeti per ben due volte la necessita' di fare una query in piu'... assolutamente no. Guarda l'esempio che ti ho postato.

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

  7. #7
    Questo serve per dei commenti, in coda io stampo rilasciato da "Mario" il 28/11/1985 alle ore 16.24.

    Adesso l'ho modificato in int(10) e mi sgravo di qualche riga di codice e di una chiamata al database, oltretutto così esegue più velocemente (qualche millisecondo ma non è male)...

  8. #8
    Originariamente inviato da lorenzos
    Questo serve per dei commenti, in coda io stampo rilasciato da "Mario" il 28/11/1985 alle ore 16.24.

    Adesso l'ho modificato in int(10) e mi sgravo di qualche riga di codice e di una chiamata al database, oltretutto così esegue più velocemente (qualche millisecondo ma non è male)...
    ma guarda che NON DEVI fare nessuna chiamata in piu'. prova questo esempio:

    SELECT *, DATE_FORMAT(campo_timestamp, '%d/%m/%Y alle ore %H.%i') as ciccio
    from tabella etc...

    prova a stampare "$row['ciccio']" Se usi $row ovviamente....

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

  9. #9
    Si ho capito, giustamente * seleziona tutto.............

    Grazie mille ancora...

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.