webForumDet fria alternativet
Logga in / Bli medlem

DATETIME problem

Databaser & SQL

7 svar · 295 visningar · startad av RoBaX

Medlem sedan dec. 20014 inlägg
Frågan#1

Försöker lägga in tiden i en databas med följande php-text:

date('ymdHis');

har även prövat:

date('y-m-d H:i:s');

Den blir inte någon tid sparad utan enbart 0000-00-00 00:00:00 :-///

Någon som har något tips?

Medlem sedan dec. 200012 464 inlägg
#2

Använd funktionen current_timestamp i mysql istället.


insert into ogrish (aleb,bleb)
values('ABC',current_timestamp)

t.ex.

Medlem sedan dec. 20014 inlägg
#3

Fungerar inte med TIMESTAMP heller :-/ Hur ska formatet se ut?

Medlem sedan dec. 200012 464 inlägg
#4

Vilken datatyp använder du för att lagra värdet i databasen?
Hur ser din kod ut?
Vad får du för fel?

Du kan inte påverka lagringsformatet för datetimekolumner i en databas. Om du vill visa värdet i något speciellt format så får du hantera det när du hämtar data.

Medlem sedan dec. 20014 inlägg
#5

timestamp(14) står det i MySQL databasen...

Koden:

<?php
include("funcs/funcs.php");
include("funcs/opendb.php");
$usrr = strtolower($usr);
$tiden = date('ymdHis');
$sql = "INSERT INTO guestbook_$usrr(namn,tid,text) VALUES ('$user','$tiden','$text')";
$resultat = mysql_query($sql);

$res = mysql_query("SELECT * FROM profil where anv='$usr'",$db);
while ($ddata = mysql_fetch_array($res)) {
$nyag = $ddata[1];

        }      

$nyag++;
$sql = "UPDATE profil SET gast='$nyag' WHERE anv='$usr'";
$resultat = mysql_query($sql);

redir("guestbook.php?username=$usr")
?>

Felet blir att ingen tid är där... Står 0000-00-00 00:00:00 i databsen :-/

Medlem sedan dec. 200012 464 inlägg
#6

Du bör nog använda datatypen datetime istället.

$sql = "INSERT INTO guestbook_$usrr(namn,tid,text) VALUES ('$user',current_timestamp,'$text')";

Timestamp fungerar så att mysql uppdaterar den kolumnen automatiskt när det sker en insert eller update på tabellen (om man själv inte anger något värde).
http://www.mysql.com/doc/D/A/DATETIME.html

Medlem sedan dec. 20014 inlägg
#7

Okej, nu sparas rätt i databasen =)

Denna kodsnäpp då...

function textDatum($dat) {
// nått här
}

Den funktionen får in dagens datum i formatet YYYY-mm-dd hh:mm:ss i $dat... Kan jag på något sätt få den att returnera typ

Tisdag den 18 dec 15:00

?? Tacksam för hjälp!

Vänliga hälsningar

// Robban

Medlem sedan dec. 200012 464 inlägg
#8

Du kan ju testa lite med strToTime som gör om det till en UNIX_TIMESTAMP och sedan formattera det med date och någon lämplig formatsträng.

function textDatum($dat) {
  return(date("format",strToTime($dat));
}
256 ms totalt · 4 externa anrop · v20260731065814-full.05830320
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)