Avatar billede killel Nybegynder
24. juni 2008 - 08:36 Der er 11 kommentarer og
2 løsninger

CURDATE funktionen

Hej,

Jeg har forgæves ledt efter hvordan man bruger CURDATE() funktionen. Den virker fint hvis jeg skal bruge udtræk fra dd., men det kniber lidt hvis jeg skal bruge udtræk som f.eks. er en eller to dage gamle.

Jeg går ud fra det er noget i stil med CURDATE() -1, men det virker ikke efter hensigten ;(
Avatar billede fennec Nybegynder
24. juni 2008 - 08:40 #1
Avatar billede fennec Nybegynder
24. juni 2008 - 08:42 #2
eller bare:
curdate() - INTERVAL 2 DAY
Avatar billede killel Nybegynder
24. juni 2008 - 08:50 #3
Det virker ikke umiddelbart. Den returnerer 0 hvor det burde være 1000+

Jeg skriver følgende:
SELECT COUNT(player) AS antal_spillere FROM test WHERE added=curdate() - INTERVAL 2 DAY
added ser således ud: 2008-05-31
Avatar billede fsconsult.dk Nybegynder
24. juni 2008 - 09:03 #4
det lyder som added er en tekststreng, så du skal nok caste det til en DATE

SELECT COUNT(player) AS antal_spillere FROM test
WHERE CAST(added as DATE)=curdate() - INTERVAL 2 DAY
Avatar billede killel Nybegynder
24. juni 2008 - 09:52 #5
added står til at væde "date".

Det nye udtræk returnerer også 0
Avatar billede fsconsult.dk Nybegynder
24. juni 2008 - 10:53 #6
ok, så forstår jeg ikke problemet.

jeg har lige testet at "where somedate=curdate()-interval 2 day" virker hos mig
Avatar billede fsconsult.dk Nybegynder
24. juni 2008 - 10:56 #7
hvad med

SELECT COUNT(*) AS antal_spillere FROM test WHERE added=curdate() - INTERVAL 2 DAY

eller bare:

SELECT *FROM test WHERE added=curdate() - INTERVAL 2 DAY
Avatar billede killel Nybegynder
24. juni 2008 - 11:03 #8
Begge dele returnerer 0
Avatar billede fennec Nybegynder
24. juni 2008 - 11:12 #9
Hvilken værdi indeholder added?? Er det med timer/min/sek??

Husk på der er forskel på "2008-06-24 11:12:48" og "2008-06-24"
Avatar billede fsconsult.dk Nybegynder
24. juni 2008 - 11:16 #10
Og added ER af typen DATE og ikke DATETIME (el. TIMESTAMP) ?

og der ER forekomster i test, hvor adder er 2008-06-22 ?
Avatar billede killel Nybegynder
24. juni 2008 - 11:33 #11
added er af typen DATE, men jeg fandt langt og længe fejlen.

Min cronjobudbyder har haft nedbrud igår og i forgårs. Så lige meget om jeg testede med -1 og -2 dage returnerer den 0 (som den jo så skal, når opdateringsscriptet ikke har kørt).

Jeg beklager fejlen, og takker for hjælpen. Begge jeres løsninger virker, vil i dele point eller skal jeg oprette et nyt spg. så i begge kan få fuld point?
Avatar billede fennec Nybegynder
24. juni 2008 - 11:43 #12
Bare del dem
.o) <-- One Eyed Jack
Avatar billede fsconsult.dk Nybegynder
24. juni 2008 - 11:46 #13
sålænge der er en forklaring ;)
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