Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768

    [MySql] inserimento data

    ciao a tutti,

    vorrei una volta per tutte capire chiaramente come MySql gestisca le date e come si debba fare un corretto inserimento.

    io ho sempre fatto così:

    mi creo un campo a cui assegno INT(11) e salvo la data generandola in questo modo

    Codice PHP:
    $giorno date("j");
    $mese =  date("n");
    $anno date("Y");
    $ore date("H");
    $minuti date("i");
    $secondi date("s");
    $data_visita mktime($ore$minuti$secondi$mese$giorno$anno); 
    però non mi sembra l'operazione più corretta

    vorrei velocizzare le procedure di selezione dei record.

    ad esempio se volessi recuperare tutte le inserzioni fatte a novembre 2006 come potrei fare rapiadamente? :master:
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  2. #2
    l'inserimento delle date mediante la funzione mktime lo puoi fare se il campo della tabella è di tipo TIMESTAMP, non INT. io per comodità di solito uso le tipologie di campo DATE e DATETIME, a seconda del fatto che mi serva o no anche l'orario.

    per l'inserimento, nel caso dei campo DATE devi semplicemente inserire la data come stringa nel formato "YYYY-MM-DD", mentre per i DATETIME nel formato "YYYY-MM-DD HH:MM:SS".

    esempio:

    codice:
    INSERT INTO tabella(campo_date, campo_datetime)
    VALUES('2006-05-21', '2006-05-21 15:10:00')
    per le ricerche ti basta formattare le date nella tabella con la funzione DATE_FORMAT di MySQL (vedi la documentazione su www.mysql.com)

  3. #3
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    e per l'inserimento della data c'è un comando appropriato in MySql oppure devo generarmela io la stringa?
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da gasmor
    e per l'inserimento della data c'è un comando appropriato in MySql oppure devo generarmela io la stringa?
    Se usi un campo di tipo date, c'è curdate(), se usi un campo di tipo datetime allora usi now()

    select curdate()
    select now()


  5. #5
    Originariamente inviato da nicola75ss
    Se usi un campo di tipo date, c'è curdate(), se usi un campo di tipo datetime allora usi now()

    select curdate()
    select now()
    questo se devi inserire la data odierna. se invece devi inserire una data arbitraria costruisci direttamente la stringa tramite php

  6. #6
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    ho fatto una tabella che ha 2 campi TIMESTAMP

    e si chiamano: prima visita e ultima visita

    il problema è che se esguo una query tipo:

    "UPDATE `utenti` SET `ultima visita` = NOW() WHERE `id` = '$id_utente'"

    mi aggiorna entrambi i campi, mentre dovrebbe aggiornare solo ultima visita

    perchè? :master:
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  7. #7
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    risolto, bastava fare i campi "DATETIME" :rollo:
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da OhMyGod
    l'inserimento delle date mediante la funzione mktime lo puoi fare se il campo della tabella è di tipo TIMESTAMP, non INT.
    La giuria non tenga conto di questa s______a.

    mktime() produce un intero. Il timestamp di MySql non è il timestamp Unix

    A parte questo dettaglio, sicuramente meglio usare campi DATETIME che interi

  9. #9
    Originariamente inviato da luca200
    La giuria non tenga conto di questa s______a.
    umh... sì certo, riconosco la s______a

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.