[SQL]Defaultwaarde DATETIME instellen?

Pagina: 1
Acties:

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 10-08 11:19

PromWarMachine

Forsaken Archer

Topicstarter
Mijn database:

Afbeeldingslocatie: http://www.tweakers.net/ext/f/10677/full.jpg

Het is de bedoeling dat ik met een simpel HTML formuliertje deze database ga vullen, ten behoeve van een online webbased spel genaamd Dark Future.

Nu heb ik een vraagje over dat veld DATETIME. In de documentatie heb ik gezien dat je achteraf heel leuk uit dit veld bijvoorbeeld alleen de tijd of alleen de datum kan halen. :) Maar ik moet hem eerst vullen. Natuurlijk kan ik niet bij elke row handmatig bijvoorbeeld: "2003-09-15 03:35:00" in gaan vullen, dus dit moet automatisch.

'k Heb in phpMyAdmin geprobeerd de default waarde op NOW of NOW() of 'NOW()' te zetten. Hij zegt dat de automatisch gegenereerde query ( ALTER TABLE drugs CHANGE Datum Datum DATETIME DEFAULT 'NOW()' not null ) geaccepteerd wordt, maar vervolgens wordt bij een invoegquery als deze:
INSERT INTO drugs VALUES ('', 'Amsterdam', 'Speed', '2405', '');
Gewoon weer: 0000-00-00 00:00:00 ingevuld? :?

Hoe stel ik de default waarde van DATETIME als de huidige datum in? :)

Dividend for Starters


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
PromWarMachine schreef op 15 September 2003 @ 03:40:
'k Heb in phpMyAdmin geprobeerd de default waarde op NOW of NOW() of 'NOW()' te zetten. Hij zegt dat de automatisch gegenereerde query ( ALTER TABLE drugs CHANGE Datum Datum DATETIME DEFAULT 'NOW()' not null ) geaccepteerd wordt, maar vervolgens wordt bij een invoegquery als deze:
[...]
Gewoon weer: 0000-00-00 00:00:00 ingevuld? :?
Da's vrij logisch, want hij probeert dan de string 'NOW()' in te voeren en dat zal idd een hoop nullen opleveren. er mogen geen quotes om NOW() heen staan als je 't als functie wil laten gelden
Hoe stel ik de default waarde van DATETIME als de huidige datum in? :)
Door 'm van het type TIMESTAMP te maken. Let wel: dan wijzigt ie ook weer als je later een update doet

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 10-08 11:19

PromWarMachine

Forsaken Archer

Topicstarter
marty schreef op 15 September 2003 @ 04:18:
[...]

Da's vrij logisch, want hij probeert dan de string 'NOW()' in te voeren en dat zal idd een hoop nullen opleveren. er mogen geen quotes om NOW() heen staan als je 't als functie wil laten gelden


[...]

Door 'm van het type TIMESTAMP te maken. Let wel: dan wijzigt ie ook weer als je later een update doet
Hij maakt er nog steeds gewoon nullen van. Het enige verschil dat ik kan opmerken is dat er nu alleen nullen komen, zonder leestekens. Net stond het er in dit formaat: 0000-00-00 00:00:00 nu: 00000000000000.

'k Heb net bijvoorbeeld Tokyo met deze query gevuld:

INSERT INTO drugs VALUES ('', 'Tokyo', 'Jewelry', '864', '');

Zonder resultaat. Iemand?

Zie ook dit overzichtje:

Afbeeldingslocatie: http://www.tweakers.net/ext/f/10678/full.jpg

Dividend for Starters


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
PromWarMachine schreef op 15 September 2003 @ 14:37:
[...]


Hij maakt er nog steeds gewoon nullen van. Het enige verschil dat ik kan opmerken is dat er nu alleen nullen komen, zonder leestekens. Net stond het er in dit formaat: 0000-00-00 00:00:00 nu: 00000000000000.
tja, leens eens wat over het timestamp veld voordat je er als een blinde mee aan de slag gaat.

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 10-08 11:19

PromWarMachine

Forsaken Archer

Topicstarter
Marty: Echt logisch vind ik het niet dat je bij het vullen van de tabel NOW() moet opgeven. Het is nu wél gelukt, maar daar dacht ik in tweede instantie pas aan. Mij leek het veel logischer om dit te doen:

ALTER TABLE drugs CHANGE Datum Datum TIMESTAMP (14) DEFAULT NOW()

Maar zoals je begrijpt geeft dit een fout en als je NOW() tussen quotes zet, probeert hij letterlijk NOW() in het veld te zetten, wat bij een datumveld uiteraard ook niet werkt.

Dividend for Starters


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
PromWarMachine schreef op 15 September 2003 @ 14:46:
Marty: Echt logisch vind ik het niet dat je bij het vullen van de tabel NOW() moet opgeven. Het is nu wél gelukt, maar daar dacht ik in tweede instantie pas aan
als je nou eens op je gemak de info doorleest die je kunt vinden bij die url die ik je eerder gaf dan was je er al lang achter gekomen dat je bij een TIMESTAMP veld ook helemaal geen NOW() hoeft op te geven in de query
Pagina: 1