Avatar billede net-base.dk Nybegynder
26. august 2004 - 12:53 Der er 18 kommentarer og
2 løsninger

Problemer med tids felt

Jeg har lave en database hvor jeg gerne vil kunne indsætte klokken og dato, men hvad skal det være for et felt?

Det skal stå sådan her "DD-MM-YYYY HH:MM:SS", er er et felt der så sådan her ud "YYYY-MM-DD HH:MM:SS"

det skal hentes i php og skal også indsættes gennem php, så det kunne vel godt være et char(19) felt, og hvor man så bare lavede dato og tid i php.
Avatar billede fennec Nybegynder
26. august 2004 - 12:55 #1
Det skal være et DateTime felt, selv om dato'en ikke bliver vist på den måde. Det formatere man tilbage i koden.
Avatar billede jakobclausen Nybegynder
26. august 2004 - 12:56 #2
Det bedste er helt sikkert at vælge et date-format, også selvom det ikke helt står med den formatering som du gerne vil. Grunden til dette er at du på denne måde kan bruge alle de indbyggede date funktioner, i mysql, hvilket du ikke kan med char(19).

(1) Lav en variabel med værdi som DD-MM-YYYY HH:MM:SS
(2) Lav det om til YYYY-MM-DD HH:MM:SS
(3) Læg det i databasen
(4) Lav et udtræk med formatet DD-MM-YYYY HH:MM:SS
Avatar billede jakobclausen Nybegynder
26. august 2004 - 12:59 #3
Når du laver dit udtræk kan du bruge nedenstående til at formatere feltet:

DATE_FORMAT(kolonne, '%d-%m-%Y %H:%i:%s')
Avatar billede net-base.dk Nybegynder
26. august 2004 - 13:10 #4
okay det må jeg sidde og rode lidt ned.
Avatar billede net-base.dk Nybegynder
26. august 2004 - 13:10 #5
har desvære bare ikke tid lige nu. så det bliver nok først i morgen desvære
Avatar billede Slettet bruger
26. august 2004 - 23:23 #6
De store fordele ved at bruge MySQLs eget tidsformat i stedet for en ren tekststreng er:

- Sortering klares meget let.
- Udpluk efter specielle kriterier klares også let.

Følgende kan være meget besværligt med en tekststreng, men er let med en DateTime:

- Find poster lavet om mandagen.
- Find poster lavet mellem to tidspunkter.
- Find poster lavet om mandagen i de sidste 3 måneder og sorter dem efter klokkeslet.
Avatar billede net-base.dk Nybegynder
27. august 2004 - 09:20 #7
okay det kan jeg godt se, var noget bedere argument, så må jeg rode med det andet, smider i et svar så får i point, får ikke rodet med det lige nu, da jeg lige er startet på at lære php, så skal lige kende sproget inden jeg kan lave noget stort,
Avatar billede jakobclausen Nybegynder
27. august 2004 - 09:23 #8
-
Avatar billede Slettet bruger
27. august 2004 - 15:29 #9
Her kommer et svar, men for at jeg har lavet noget for pointene, får du lige metoden til at løse de opgaver jeg stilte:

- Find poster lavet om mandagen.
SELECT * FROM tabelnavn WHERE WEEKDAY(datofelt)=0

- Find poster lavet mellem to tidspunkter.
SELECT * FROM tabelnavn WHERE datofelt BETWEEN '2004-01-16 00:00:00' AND '2004-02-15 23:59:59'

- Find poster lavet om mandagen i de sidste 3 måneder og sorter dem efter klokkeslet.
SELECT * FROM tabelnavn WHERE datofelt BETWEEN NOW() - INTERVAL 3 MONTH AND NOW() ORDER BY TIME(datofelt)
Avatar billede Slettet bruger
27. august 2004 - 15:31 #10
Jeg havde lige glemt mandagen i det sidste eksempel, så den skulle have set således ud:

SELECT * FROM tabelnavn WHERE WEEKDAY(datofelt)=0 AND datofelt BETWEEN NOW() - INTERVAL 3 MONTH AND NOW() ORDER BY TIME(datofelt)
Avatar billede net-base.dk Nybegynder
30. august 2004 - 12:22 #11
okay er lidt n00b tild et her, hvordan skal den sæt jeg skal lave se ud, har prøvet med "SELECT * FROM news DATE_FORMAT(kolonne, '%d-%m-%Y %H:%i:%s')" men det laver bare fejl, men hvordan skal den sættes sammen.
s
Avatar billede fennec Nybegynder
30. august 2004 - 12:36 #12
Du smider den på din select liste.

"SELECT *, DATE_FORMAT(datofelt, '%d-%m-%Y %H:%i:%s') as datofeltFormateret FROM news"
Avatar billede net-base.dk Nybegynder
03. september 2004 - 13:57 #13
min tabel har disse felter (oprettet,overskrift,indhold,forfatter), og dato feltet skal heltes ud af feltet oprettet? Kan jeg ikke få jer til at skrive den SQL Sætning, for når jeg selv prøver laver den bare fejl.
Avatar billede jakobclausen Nybegynder
03. september 2004 - 14:14 #14
"SELECT *, DATE_FORMAT(oprettet, '%d-%m-%Y %H:%i:%s') as datofeltFormateret FROM news"
Avatar billede net-base.dk Nybegynder
04. september 2004 - 01:02 #15
okay nu har jeg sat sætningen ind i mit script men den udskriver stadig dato/tid sådan her "20040825000000" er der andet jeg skal gøre, for at få det til at virke.
Avatar billede net-base.dk Nybegynder
04. september 2004 - 01:02 #16
YYYY-MM-DD HH:MM:SS
Avatar billede fennec Nybegynder
06. september 2004 - 08:57 #17
Udskriver du "oprettet" eller "datofeltFormateret". De eksistere begge i resultatet og "oprettet" er på det almindelige (forkerte) format, mens "datofeltFormateret" gerne skulle være på "dd-mm-yyyy hh:nn:ss" formatet.
Avatar billede net-base.dk Nybegynder
07. september 2004 - 18:08 #18
her er den kode som jeg bruger til mit news script, og på www.net-base.dk kan man se denne fil når den bliver vist.

<?php
$SQLSTR = mysql_query("SELECT *, DATE_FORMAT(oprettet, '%d-%m-%Y %H:%i:%s') as datofeltFormateret FROM news");

while ($row = mysql_fetch_array($SQLSTR))
{

$oprettet = $row["datofeltFormateret"];
$overskrift = $row["overskrift"];
$indhold = $row["indhold"];
$forfatter = $row["forfatter"];

if ($oprettet == "")
{
    $oprettet = "&nbsp;";
}
else
{
    $oprettet = $row["oprettet"];
}

if ($indhold == "")
{
    $indhold = "&nbsp;";
}

    echo "<center><table border='0' cellpadding='0' cellspacing='0' Class='news'>";
    echo "<tr>";
    echo "<td width='690' heigth='20' colspan='2' valign='middle' Class='news1'><b>[";
    echo $oprettet; echo"]</b>&nbsp;"; echo $overskrift;
    echo "</td>";
    echo "</tr><tr><td colspan='1' valign='top' Class='news2'>";
    echo $indhold;
    echo "</td><td colspan='1' valign='top' Class='news3'><b>Skrevet af:</b><br>&nbsp;";
    echo $forfatter;
    echo "</td></tr></table><br>";
}
?>
Avatar billede net-base.dk Nybegynder
07. september 2004 - 18:12 #19
Skal måske lige siges at filen bliver includeret i en anden fil som bar database Connection i toppen og Close i bunden derfor er det ikke med i filen.
Avatar billede net-base.dk Nybegynder
18. september 2004 - 11:28 #20
nå lukker... har droppet det, men gemmer jeres svar så kan jeg altid rode videre med det en anden gang.

Deler mine point til jer, som tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Erhvervsakademi Aarhus

Undervisere til it-uddannelser

Nextway Software A/S

Software Architect

Politiets Efterretningstjeneste

Fullstack softwareudvikler i PET

Netcompany A/S

Test Consultant

SOS International

Cloud Native Architect