Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Campo DATETIME Mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36

    Campo DATETIME Mysql

    Ciao a tutti
    Non riesco ad impostare un campo DATETIME per mysql
    Sto cercando di farlo con phpmyadmin

    Io vorrei che questo campo si aggiornasse da solo all'inserimento di ogni riga e che scriva giorno, mese, anno, orario, compreso anche dei secondi

    come TIPO inserisco DATETIME
    e come predefinito provo con CURRENT_TIMESTAMP
    provo anche con on update current timestamp ma mi dà sempre errore
    mi scrive continuamente
    #1067 - Invalid default value for 'data'

    Ma cosa vuole???

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non sono sicurissimo, ma credo che non lo puoi fare se il tipo di campo è datatime, devi usare per forza un timestamp

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    Re: Campo DATETIME Mysql

    Non riesco ad impostare un campo DATETIME per mysql


    Io vorrei che questo campo si aggiornasse da solo all'inserimento di ogni riga e che scriva giorno, mese, anno, orario, compreso anche dei secondi

    come TIPO inserisco DATETIME

    come predefinito provo con CURRENT_TIMESTAMP

    #1067 - Invalid default value for 'data'
    Premetto che conosco poco il TIMESTAMP
    e conosco molto meno MySql ( Io uso la concorrenza )

    Quello che ti dico è quindi relativo a MSSQL

    __________________________________________________ ________________

    Il TIMESTAMP non ha formato DataOra bensi Binario

    Il TIMESTAMP nonostante il nome che trae in inganno
    non c'entra niente con il tempo data orario
    __E invece un contatore ASSOLUTO di tutti i record del DB
    __in tutte le tabelle che hanno un campo TUMESTAMP
    __e include le modifiche ai record

    __________________________________________________ __________

    In MSSQL per fare quello che vuoi te non devo usare TIMESTAMP ( @@dbts )
    bensi devo usare come valore predefinito (getdate())

    __________________________________________________ ____________


    Del resto il messaggio di errore che ci riferisci è charo

    #1067 - Invalid default value for 'data'
    Nel tuo campo 'data' formato DataOra stai inserendo un Binario !!!






    Spero di avere centrato il problema nonostante che non conosco MySql

    Saluti

  4. #4

    Re: Campo DATETIME Mysql

    Originariamente inviato da Bombuji
    come predefinito provo con CURRENT_TIMESTAMP
    provo anche con on update current timestamp ma mi dà sempre errore
    mi scrive continuamente
    #1067 - Invalid default value for 'data'

    Ma cosa vuole???
    tipo di campo TIMESTAMP default CURRENT_TIMESTAMP

    il campo e' di formato identico a DATETIME

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

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Un campo DATETIME non accetta default diversi da un valore specifico.

    Puoi usare TIMESTAMP se ti serve il default della data corrente, ma ricorda che tale campo ha un range massimo che non va oltre il "'2038-01-19 03:14:07"

    Per non avere limitazioni devi per forza usare DATETIME e qualche stratagemma, ad esempio assegnare alla tabella un trigger che si attiva ad ogni inserimento e che mette nel campo della data la data attuale.

  6. #6
    In una tabella Mysql puoi avere quanti campi DATETIME tu voglia ma solo un campo TIMESTAMP.
    Solo il campo TIMESTAMP accetta la clausola "on update current timestamp".
    Tolto che DATETIME occupa meno spazio di TIMESTAMP quest'ultimo è utile praticamente solo per un campo "last_modified" visto che il db lo aggiornerà da solo.
    Per tutti i DATETIME invece dovrai tu nella query valorizzare il campo con now() o con una data a tua scelta.
    P.s. il tipo di campo DATE (se non ti serve l'ora) è ancora più risparmioso di spazio.

    Ciao
    Lelio

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da leliofa
    In una tabella Mysql puoi avere quanti campi DATETIME tu voglia ma solo un campo TIMESTAMP.
    ......
    per essere precisi di campi TIMESTAMP ne puoi avere quanti ne vuoi nella tabella, ma solo uno di questi potrà avere CURRENT_TIMESTAMP come default.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

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.