Formattering af MySQL-dato

Tags:    php

Hej

I en tabel har jeg en dato: YYYY-MM-DD TT:MM:SS

Hvordan gør jeg sådan at mit udtræk kun skriver eks.: YYYY-MM-DD?

Nogle der kan hjælpe?

Hilsen
Jacob



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det kan godt være lidt tricky. Jeg har ikke tidligere gjort det på mySQL men kun i MSSQL. Hvis du skal lave en select på det kan du bruge en substring af det (det kan godt være at du er nødt til at konvertere til en varchar eller lignende først for at den vil godtage at lave en substring)
Fold kodeboks ind/udKode 


problemet vil opstå hvis du vil opdatere alle dine felter din at indeholde denne værdi og samtidig kunne bruge dato funktioner på den. Du kan vælge at ændre datatypen til char eller varchar men så mister du alle dine dato funktioner, men strengen vil være korrekt. Du vil sikkert løbe ind i et problem hvis du skal opdatere dit datetime felt med den nye værdi da det for nuværede ser således ud: 12-24-2003 08:15:165. Hvis du opdaterer den med en substring og indsætter den igen vil den se således ud: 12-24-2003 00:00:000, det vil sige at den nulstiller alle felter efter din substring. Hvis du kan slippe afsted med det så brug substring kun i din select statement og ikke opdater din tabel hvis ikke du vil have tidspunkt med.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)

[Redigeret d. 05/09-03 09:36:09 af Brian Hvarregaard]



du kan hive tiden ud i unix timestamp og bruge date() funktionen til at udskrive datoen:
sql:
SELECT unix_timestamp(tid) as tid
php:
date("Y-m-d",$tid);



Hej

I en tabel har jeg en dato: YYYY-MM-DD TT:MM:SS

Hvordan gør jeg sådan at mit udtræk kun skriver eks.: YYYY-MM-DD?

Nogle der kan hjælpe?

Hilsen
Jacob


Hej Jacob,

Brug MySQL's DATE_FORMAT funktion.
Fold kodeboks ind/udKode 


mytable.mydatevalue er selvfølgelig din kolonne som indeholder en datetime.

prøve evt. først med SQL'en nedenfor (tager dagsdato og konvertere), så du kan se hvad der sker.

Fold kodeboks ind/udKode 


Mvh
Michael.



du kan hive tiden ud i unix timestamp og bruge date() funktionen til at udskrive datoen:
sql:
SELECT unix_timestamp(tid) as tid
php:
date("Y-m-d",$tid);


Hvis jeg tilføjer:
$tid = $dataDato['tid'];
ovenover
date("Y-m-d",$tid);
så virker det :)

Med venlig hilsen
Jacob



Du kan også vælge bare at bruge DATE() i MySQL:

http://www.mysql.com/doc/en/Date_and_time_functions.html

mvh. Jesper Sørensen



BRuk DATE_FORMAT() i mySQL



t