timestamp

Status
Niet open voor verdere reacties.

HenkRog

Gebruiker
Lid geworden
9 dec 2008
Berichten
70
Hallo,

ik wil een tabel maken met een kolom laatste_update en een kolom creatie_datum.
In creatie_datum moet dus het tijdstip komen dat de record is aangemaakt, in laatste_update moet het tijdstip komen dat de record het laatst is bijgewerkt. Kan dit met twee timestamp koloms? Wat moet ik nog meer doen?
 
Het makkelijkste is om een veld laatste_update te maken met als atribuut: on update current timestamp.

Bij het invoegen kun je de time() functie gebruiken van php voor creatie_moment.

$sql = "INSERT INTO tabel (creatie_datum, kolom2, ... ) VALUES (" . time() . ", 'waarde2', ....)";

succes!

Owja en een timestamp kun je eenvoudig converteren naar een leesbare datum/tijd met de php date functie:
http://nl.php.net/manual/en/function.date.php
 
Laatst bewerkt:
Ik had al van de eerste kolom een DATE kolom gemaakt en de tweede TIMESTAMP.

Wanneer ik nu de eerste kolom wil wijzigen naar TIMESTAMP krijg ik de foutmelding

#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Nochtans staat current timestamp niet aangevinkt en is er bij default niks ingevuld.

Enig idee?
 

Bijlagen

  • error.JPG
    error.JPG
    39 KB · Weergaven: 25
Het lijkt alsof ie het veld creatie ook on update, current_timestamp wil geven, en dat willen we natuurlijk niet. Dat geef je ook niet aan. Ik zou zeggen maar de tabel even opnieuw aan.

Als t niet lukt geef dan maar de sql van de tabel zoals je die nu hebt, kan met menu Exporteren (als sql), dan kijk ik even of ik t voor elkaar krijg
 
Laatst bewerkt:
Bij default niets invullen wordt door mysql opgevat als current_timestamp. Je kunt dit verhelpen door hier het getal 0 in te vullen, dan komt er '0000-00-00 00:00:00' in de kolom te staan. Tweede mogelijkheid is om datetime van de kolom te maken.
 
Bij default niets invullen wordt door mysql opgevat als current_timestamp. Je kunt dit verhelpen door hier het getal 0 in te vullen, dan komt er '0000-00-00 00:00:00' in de kolom te staan. Tweede mogelijkheid is om datetime van de kolom te maken.


inderdaad, zo gaat het

bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan