webForumDet fria alternativet

datum-problem

Databaser & SQL

8 svar · 321 visningar · startad av webzonen

Medlem sedan feb. 2001390 inlägg
Frågan#1

hoppas detta blir i rätt forum.

Har frågat en del på icq, och folk säger att man ska ha timestamp för att enklast få in datumet när posten skapades. Men datumet blir ju då ex 20040820131020 och det är ju inte så lättläst. Hur ska jag gå tillväga för att få det till 2004-08-20 13:10:20?

är det en inställning i MySQL kolumnen eller är det i php-scriptet som hämtar värdet jag ska ändra?

Medlem sedan okt. 20023 030 inlägg
#2

Är det inte lättare att använda datetime istället för timestamp? Då får du ju tillbaka datum och tid.

Medlem sedan feb. 2001390 inlägg
#3

Jo, men hur gör man så datetime lagrar värdet autmatiskt? jag provade det först, men då blev det ju 0000-00-00 00:00
är det nåt default-värde som ska i eller?

Medlem sedan okt. 20023 030 inlägg
#4

Använd funktionen now.

T.ex.

INSERT INTO mintabell (datumkolumn) VALUES(NOW())
Medlem sedan feb. 2001390 inlägg
#5

Fatal error: Call to undefined function: now() in /usr/local/apache2/htdocs/kommentar.php on line 21

21: $datum = NOW();

Medlem sedan juni 200032 967 inlägg
#6

Använd CURRENT_TIMESTAMP direkt i SQL-frågan istället, sätt inte värdet i php.

mvh

Medlem sedan mars 20034 471 inlägg
#7

@nders skrev:

Använd CURRENT_TIMESTAMP direkt i SQL-frågan istället, sätt inte värdet i php.

Jag använde:

$date = date('Y-m-d');

innan lagring i en variabel av typ DATE.

Går inte det lika bra? :q Och varför i så fall? :q

Medlem sedan juni 200032 967 inlägg
#8

aasah skrev:

@nders skrev:

Använd CURRENT_TIMESTAMP direkt i SQL-frågan istället, sätt inte värdet i php.

Jag använde:

$date = date('Y-m-d');

innan lagring i en variabel av typ DATE.

Går inte det lika bra? :q Och varför i så fall? :q

Jo, det går lika bra. Men, jag tycker det ser renare ut att göra så här:

$sql = "INSERT INTO tbl (mydate) VALUES (CURRENT_TIMESTAMP)";

än:

$mydate = date('Y-m-d');
$sql = "INSERT INTO tbl (mydate) VALUES ('$mydate')";

Eller:

$sql = "INSERT INTO tbl (mydate) VALUES ('" . date('Y-m-d') . "')";

Dessutom skulle man nog gärna vilja ha med tiden, så det får man leka dit med date-funktionen i php i så fall.

En annan skillnad: använder man datum/tid-funktionalitet i php får man den tid som gäller på webservern, använder man current_timestamp i SQL-frågan är det datum/tid på databasservern som gäller. Det kan vara stor skillnad, så det vore bra om man vet vad man är ute efter.

mvh

Medlem sedan mars 20034 471 inlägg
#9

@nders skrev:

aasah skrev:

@nders skrev:

Använd CURRENT_TIMESTAMP direkt i SQL-frågan istället, sätt inte värdet i php.

Jag använde:

$date = date('Y-m-d');

innan lagring i en variabel av typ DATE.

Går inte det lika bra? :q Och varför i så fall? :q

.... En annan skillnad: använder man datum/tid-funktionalitet i php får man den tid som gäller på webservern, använder man current_timestamp i SQL-frågan är det datum/tid på databasservern som gäller. Det kan vara stor skillnad, så det vore bra om man vet vad man är ute efter....

Ah! Vad intressant! :D Tackar, @nders!

441 ms totalt · 3 externa anrop · v20260731065814-full.f363f448
179 ms — deklarationer (db)
120 ms — hämta statistik (db)
138 ms — hämta tråd, inlägg och bilagor (db)