Avatar billede venchil Nybegynder
17. april 2006 - 11:11 Der er 15 kommentarer og
1 løsning

Dato i databasen

Jeg er gået ind i en lille blindgyde med hensyn til et website jeg er ved at lave...
Jeg vil gerne have alle datoer "universielle", sådan at når jeg trækker ud, kan jeg bruge date()-funktionen på dem... Sådan at hvis jeg kun vil have året, men ikke dato, timer, minutter og sekunder siger jeg bare date("Y", $date) - ved ikke om det er date() man skal bruge, men funktionaliteten er der?

Derudover vil jeg også gerne have at jeg kan udtrække fra måneder... Det vil sige at jeg gerne vil udtrække alle records i databasen for februar 2006 f.eks - så skal jeg også have en smart måde at gøre det på...
Avatar billede jakobdo Ekspert
17. april 2006 - 13:08 #1
Gem dato / tid som datetime.
Når du så trækker dem ud af din database, bruger du:
SELECT UNIT_TIMESTAMP(dindatotid) AS unixDate FROM....
Så vil unixDate kunne smides ind i date() som du ønsker.
Avatar billede hmortensen Nybegynder
17. april 2006 - 13:20 #2
Eller du kan formatere direkte i udtrækket:
SELECT felt1, felt2, DATE_FORMAT('%d/%m-%Y', datoFelt) AS nyDato FROM ...
Avatar billede jakobdo Ekspert
17. april 2006 - 13:22 #3
UNIX_TIMESTAMP vil jeg nu nok anbefale, da du så kan bruge strftime() og få danske uge/månedsnavne.
Avatar billede venchil Nybegynder
17. april 2006 - 14:26 #4
Hvordan trækker jeg så ud i hele måneder, hvis jeg benytter datetime i min tabel? Hvis jeg har infoen:

$maaned = 12;
$aar = 2004;

(den skulle gerne trække alle records fra december 2004 ud)
Avatar billede jakobdo Ekspert
17. april 2006 - 14:29 #5
SELECT * FROM tabel WHERE MONTH(datotid) = 12 AND YEAR(datotid) = 2004
Avatar billede venchil Nybegynder
17. april 2006 - 14:42 #6
Er MONTH() og YEAR() indbyggede funktioner til at udtrække datetime med eller...?
Avatar billede jakobdo Ekspert
17. april 2006 - 14:48 #7
Jep, mysql funktioner!
Avatar billede venchil Nybegynder
17. april 2006 - 14:51 #8
Mange tak, du må gerne lægge et svar jakobdo
Avatar billede jakobdo Ekspert
17. april 2006 - 14:52 #9
Svar og du kan finde lidt docs om de 2 funktioner her: http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
Avatar billede venchil Nybegynder
17. april 2006 - 15:19 #10
Hov! Nu var der lige pludselig en MySQL-fejl:

$getnews = mysql_query("SELECT *, UNIT_TIMESTAMP(tid) AS tid FROM nyheder WHERE MONTH(tid) = $tid[0] AND YEAR(tid) = $tid[1]") or die("MySQL-fejl: ".mysql_error());

MySQL-fejl: 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 '(tid) AS nytid FROM nyheder WHERE MONTH(tid) = AND YEAR(tid) =

Har prøvet det meste, men kan ikke finde en udvej, nogen der kan hjælpe mig?
Avatar billede hmortensen Nybegynder
17. april 2006 - 15:22 #11
Den hedder UNIX_TIMESTAMP og ikke UNIT_TIMESTAMP
Avatar billede jakobdo Ekspert
17. april 2006 - 15:22 #12
Hehe, jeg har skrevet forkert tidligere...
Det skal VÆRE uniX og ikke uniT

UNIX_TIMESTAMP()
Avatar billede venchil Nybegynder
17. april 2006 - 15:23 #13
Det giver stadig:

MySQL-fejl: 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 'AND YEAR(tid) =' at line 1
Avatar billede jakobdo Ekspert
17. april 2006 - 15:26 #14
Prøv at ret: $tid[0] til: '" . $tid[0] . "' og ligeledes med $tid[1] til '" . $tid[1] . "'
Avatar billede venchil Nybegynder
17. april 2006 - 15:29 #15
Mange tak jakobdo... Det virker helt perfekt :D
Avatar billede jakobdo Ekspert
17. april 2006 - 15:30 #16
Takker for point.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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