[MySQL] Timestamp notatie

Pagina: 1
Acties:
  • 205 views sinds 30-01-2008
  • Reageer

  • Bever
  • Registratie: Maart 2001
  • Laatst online: 30-01 07:39
Na een upgrade van MySQL van 4.0.26 naar 4.1.22 is de notatie van een TIMESTAMP veld gewijzigd.

In versie 4.0.26 is de notatie:
YYYYMMDDHHIISS
In versie 4.1.22 is de notatie:
YYYY-MM-DD HH:II:SS

Nu zoek ik een mogelijkheid om toch de oude notatie te gebruiken, aangezien de php-software die ik gebruik gebruik maakt van de oude notatie (en deze software is niet zo maar even snel aan te passen).

Ik wil de oude notatie graag gebruiken doormiddel van een query of mysql-commando en niet de datums omzetten met php.

Via google vond ik deze site: http://www.flashforum.de/forum/showthread.php?t=191987
Hierin wordt gesproken over
code:
1
SET SESSION datetime_format='%Y%m%d%H%i%s'

maar dit heeft geen effect op mijn resultaten.

Ook te tip om `timestamp`+0 in de query te zetten heeft geen positief resultaat.

Weet iemand een oplossing zodat ik de oude notatie kan blijven gebruiken?

Of het gebruik van een timestamp goed of slecht is wil ik hierbij graag buiten beschouwing laten, deze wordt nu eenmaal gebruikt in m'n huidige database.

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 21-01 12:08

djiwie

Wie?

Even zoeken in de MySQL manual bij de datum- en tijdfuncties leert:
SQL:
1
DATE_FORMAT(veld, '%Y%m%d%H%I%S')

om precies hetzelfde formaat te krijgen.

  • Fugitive1977
  • Registratie: November 2007
  • Laatst online: 13-01 13:03
Ik heb een zelfde probleem, ik maak gebruik van een productie server en een ontwikkel server, op beide staat MySQL en op beide staat datetime_format %Y-%m-%d %H:%i:%s
Als ik nu een dump maak op de productie server van de MySQL database naar een sql-file kunnen de records met een datetimestamp niet op de ontwikkelserver worden ingelezen.
Ik krijg dan als ik source backup.sql in mysql invoer de volgende foutmelding:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00, 'ned', 10, 'N', 'Y')' at line 1
doordat in de query file een datatime stamp met een spatie staat.
De backup file maak ik mbv PHPMyAdmin door een database te exporteren.

Verwijderd

Is jouw MySQL versie op de productieserver anders dan op de ontwikkelserver?
Zou je dat niet gelijktrekken dan?

  • Fugitive1977
  • Registratie: November 2007
  • Laatst online: 13-01 13:03
Nee beide zijn versie 4.1.7
Hetzelfde probleem had ik ook toen beide MySQL versie 3.23 hadden...

  • Fugitive1977
  • Registratie: November 2007
  • Laatst online: 13-01 13:03
Laat ik mn vraag anders stellen: in de mysql dump file, die ik in PhpMyAdmin opbouw, staan DateTime stamps als volgt: '2007-11-26 12:30:51'. tijdens het inlezen verwacht MySQL het volgende formaat: '20071126123051', is er een manier om het dedumpte bestand alsnog correct in te lezen?
Tot op heden haalde ik handmatig de -, : tekens en spaties weg uit de dump file, maar dat wordt steeds omslachtiger door het groeiend aantal records.

[ Voor 0% gewijzigd door Fugitive1977 op 26-11-2007 10:04 . Reden: type-fout ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Die export functie doet ook maar een select statement. Dus dan selecteer je gewoon zelf dat veld met gewenste notatie. :z
En die conversie die je noemt kan ook prima met een find/replace of desnoods regexje, hoe omslachtig dat is hangt helemaal niet samen met het aantal records. ;)

{signature}


  • Fugitive1977
  • Registratie: November 2007
  • Laatst online: 13-01 13:03
Dat begrijp ik, maar zal er geen MySQL of PhpMyAdmin instelling zijn, zodat bij het opbouwen van de export file direct het gewenste dateTime formaat wordt gekozen, zoals ( 20071126123051 ipv 2007-11-26 12:30:51)?

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 23-01 16:21
Dat kan aan de locale van je server liggen.
De oplossing:
code:
1
datetime_format  %Y-%m-%d %H:%i:%s

(of date_format of time_format)
of het gewenste formaat in de my.cnf config bestand van mysql opnemen!
Waarschijnlijk is het in jouw geval time_format al het hier nml. om een echte timestamp gaat en niet een datetime veld oid..

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
En die optie noemde ik niet omdat een dergelijke setting al lang en breed in de startpost staat. ;)

{signature}


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 23-01 16:21
Voutloos schreef op maandag 26 november 2007 @ 16:59:
En die optie noemde ik niet omdat een dergelijke setting al lang en breed in de startpost staat. ;)
En ik daarom zet in mijn post ;-) dat het in zijn geval waarschijnlijk niet het DATE_FORMAT of DATETIME_FORMAT is , maar het TIME_FORMAT format!
Pagina: 1