Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Date

  1. #1

    Date

    Ho alcune domande sul campo data definito nel db mysql...

    Perchè una data la devo definire date e non semplicemente Varchar???

    Mi permette di fare operazioni particolari???

    Il formato è anno-mese-giorno??? Ma quando l'utente inserisce la data deve essere obbligatoriamente inserita in questo modo ???

    E' posibile prelevare in automatico la data ???

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Inserendo la data in varchar non avresti la possibilità di fare le operazioni che invece si possono fare con il DATETIME, TIMESTAMP o DATE.
    Personalmente per le date utilizzo il tipo DATETIME.
    Di quali operazioni sto parlando?
    Per esempio fare una query al DB impostando magari da una certa data in poi o magari l'ordinamento per data.
    Aggiugi ai preferiti questo link

    http://database.html.it/articoli/sta...mpo-con-mysql/

    ti sarà sempre utile.

    Dovrai fare in modo che l'utente non debba necessariamente inserire a mano la sintassi della data come sul tuo db, solitamente le date ( tipo la data di nascita ) le puoi fare inserire creando 3 select, una per il giorno, una per il mese, una per l'anno, creando delle funzioni che ti generino un tot numero di anni, giorni ed i nomi dei mesi, senza inserire tutto a mano ovviamente.

    Se invece hai bisogno di salvare sul DB quando è avvenuta una certa modifica ad un qualcosa basta che nella query inserisci "NOW()" come valore del campo in questione.
    NOW() corrisponde alla data attuale al momento dell'esecuzione della query.

    Spero di averti chiarito un po le idee.
    Ciao

  3. #3
    Grazie... quindi tu mi consigli di usare un campo data per la data ???

    Ma la data inserita dall'utente deve sempre essere 0000-00-00 o può anche inserire gg-mm-anno ??

    ----------------EDIT ----------

    Non avevo letto l'ultima parte VVoVe:

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Nell'esatto momento in cui hai risposto io ho aggiunto questa parte al mio messaggio di prima, prova a rileggerlo.
    Cmq aggiungo ancora una parte, dopo aver creato le select la data da inserire sul DB te la crei in questo modo:

    $data = $select_anno."-".$select_mese."-"$select_giorno;

    L'ordine delle select quindi è quello che ti pare

    Ciao

  5. #5
    Grazie grazie....

    Ma a me iteressava di salvare la data nel momento inn cui si esegue la query...

    Ho impostato il campo data nel db come DateTime ..

    Ma come faccio a fare la funzione now ???

    Io ho fatto così ma non funziona...

    $data = 'NOW()';

    Ma in questo modo potrò fare delle query per prelevare i record degli ultimi 3 mesi ???

  6. #6
    Originariamente inviato da Taca
    Grazie grazie....

    Ma a me iteressava di salvare la data nel momento inn cui si esegue la query...

    Ho impostato il campo data nel db come DateTime ..

    Ma come faccio a fare la funzione now ???

    Io ho fatto così ma non funziona...

    $data = 'NOW()';

    Ma in questo modo potrò fare delle query per prelevare i record degli ultimi 3 mesi ???
    Ho risolto.....

    Ma una volta usato now e prelevato il giorno e l'ora... come faccio a stampare a video gg-mm-anno ??

  7. #7
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Allora,
    potresti seguire questo metodo, tenengo conto che la data sul tuo DB sia presa e salvata nella variabile $data.
    Fai un explode() di $data, prima per spazio vuoto poi per "-" e ti ricavi le 3 singole variabili $giorno, $mese, $anno.

    Puoi stamparle su schermo nell'ordine che vuoi adesso.
    Se ti potesse servire, potresti anche ricavarti l'UnixTimestamp con la funzione mktime() dopo aver preso ricavato $giorno, $mese, $anno.

    L'UnixTimestamp potrebbe tornarti utile per visualizzare una data formattata nel modo che più ti piace con la funzione date(), es.

    $data_formattata = date ("Y-m-d", $timestamp );

    Per ulteriori spiegazioni sulle funzioni sopra elencate http://www.php.net.
    Ciao

  8. #8
    Ho provato ma non mi va...

    Dove sbaglio ???

    $data_array = explode("-", $data);
    echo $data_array[0]; // Giorno
    echo $data_array[1]; // Mese
    echo $data_array[2]; // Anno

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Originariamente inviato da Taca
    Ma una volta usato now e prelevato il giorno e l'ora... come faccio a stampare a video gg-mm-anno ??
    Puoi farlo anche direttamente in query

    codice:
    SELECT DATE_FORMAT(campo_data, '%d/%m/%Y') AS data_formattata
    con l'alias "data_formattata" avrai la data formattata in gg/mm/yyyy.

    Se cerchi tra le discussioni in rilievo troverai nella sezione database alcune pillole sulla gestione delle date con mysql.

  10. #10
    Grazie

    Però non mi va il tuo codice....

    il mio campo nel db è $data...

    Mi puoi aiutare??

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.