Avatar billede nickyc Nybegynder
16. februar 2006 - 13:12 Der er 20 kommentarer og
1 løsning

vælg alt fra dags dato, samt 24 timer frem?

Hvordan får jeg denne nedenstående SELECT til at vælge alt der er fra dags dato, og 24 timer frem??

$SQL = "SELECT * FROM calendar ORDER BY dato LIMIT 6";
Avatar billede jakobdo Ekspert
16. februar 2006 - 13:18 #1
$SQL = "SELECT * FROM calendar WHERE datotid > NOW() AND ADDDATE(NOW(), INTERVAL 1 HOUR) ORDER BY dato LIMIT 6";
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:21 #2
Hmm, ser ikke helt rigtig ud, den ændrer de datoer der bliver skrevet ud,hvilket den ikke skal
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:24 #3
Hov, nej min fejl...
Det fungerer sådan set fint nok, men den vælger jo alt hvad der er over dags dato, hvilket den ikke skal... Skal kun vælge alt fra idag, og 24 timer frem?
Avatar billede jakobdo Ekspert
16. februar 2006 - 13:26 #4
Hvad gemmer du af info i din tabel?
date?
datetime?
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:29 #5
varchar(100),  og smider det ind: $dato = date("d-m-Y");

Skal vel ændre det s´til date så ???
Avatar billede jakobdo Ekspert
16. februar 2006 - 13:31 #6
Date, eller datetime er lettest at arbejde med!
Ved ikke om denne måske virker:

$SQL = "SELECT * FROM calendar WHERE TO_DAYS(NOW()) >= TO_DAYS(datotid) AND TO_DAYS(ADDDATE(NOW(), INTERVAL 1 DAY)) <= TO_DAYS(datotid) ORDER BY dato LIMIT 6";
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:43 #7
Hmm, den virker sq ik helt... Problemet er bare hvis jeg ændrer det fra varchar nu til date - så fucker den datoerne op i databasen
Avatar billede jakobdo Ekspert
16. februar 2006 - 13:45 #8
Ja, men du kan lige så godt rette datatyper til de rigtige.

datetime = dato tid
date = dato
timestamp = tid
osv...
Varchar er til tekst (max 255)
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:49 #9
Rigtig nok, men igen, den fucker datoerne op, fx hvis jeg ændrer det feltet til date nu, så ændrer den alle datoer til noget som: 2023-05-20 <- Hvilket ikke er hensigtmæssigt da der ligger 200 poster i databasen... Så skulle jeg ind og tilrettet manuelt bagefter hvis det var jo :(

Er der ikke en smart facon ?
Avatar billede jakobdo Ekspert
16. februar 2006 - 13:54 #10
Hvordan er datoen gemt nu?
Giv evt et eksempel...
Avatar billede nickyc Nybegynder
16. februar 2006 - 13:58 #11
Kan jeg ik gøre noget ala:

          $SQL = "SELECT * FROM calendar WHERE DATE_FORMAT(dato,'%d-%m-%y') > NOW() ORDER BY DATE_FORMAT(dato,'%d-%m-%y') DESC LIMIT 6";
Avatar billede nickyc Nybegynder
16. februar 2006 - 14:07 #12
en dato ser fx sådan ud:

01-03-2006
Avatar billede jakobdo Ekspert
16. februar 2006 - 14:15 #13
Du kan ihf prøve!
Så indsætter du: DATE_FORMAT(dato,'%d-%m-%y')
alle de steder jeg har: datotid
Avatar billede nickyc Nybegynder
16. februar 2006 - 14:18 #14
altså sådanne her:

$SQL = "SELECT * FROM calendar WHERE TO_DAYS(NOW()) >= TO_DAYS(DATE_FORMAT(dato,'%d-%m-%y')) AND TO_DAYS(ADDDATE(NOW(), INTERVAL 1 DAY)) <= TO_DAYS(DATE_FORMAT(dato,'%d-%m-%y')) ORDER BY dato LIMIT 6";
?
Avatar billede jakobdo Ekspert
16. februar 2006 - 14:22 #15
Det er muligt!
Har ikke testet koden selv, og plejer nemlig altid selv at bruge datetime eller date.
Avatar billede nickyc Nybegynder
16. februar 2006 - 14:26 #16
hmm, fungerer ikke :(
Avatar billede jakobdo Ekspert
16. februar 2006 - 15:31 #17
Det er måske muligt at lave en convertering.
Men jeg ville nok anbefale dig at tilføje et temp felt som date eller datetime.
Måske date er nok i dit tilfælde.
Avatar billede nickyc Nybegynder
17. februar 2006 - 09:45 #18
Ok, jeg prøver.. Tak for din tid...
Lægger du et svar?
Avatar billede jakobdo Ekspert
17. februar 2006 - 09:46 #19
Så kan du måske lave en UPDATE ala:

UPDATE dinTabel SET datofelt = DATE_FORMAT(dato,'%d-%m-%y')
Avatar billede jakobdo Ekspert
17. februar 2006 - 09:46 #20
Og et svar!
Avatar billede jakobdo Ekspert
17. februar 2006 - 09:49 #21
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