Avatar billede rasher Nybegynder
06. juni 2000 - 16:15 Der er 6 kommentarer og
2 løsninger

Sammenligne DATE-felter med en DATE fra PHP

Jeg har et problem med at skille nogen felter ud fra en database med datoer.

$datoen = date("Y-m-d");

SELECT * FROM kalender where dato>$datoen

dato er et DATE felt med datoer fa 1998 og fremad. Meningen er at kun poster efter dags dato skal hentes frem. I stedet kommer alle datoerne.

Any help?
Avatar billede steffen Nybegynder
06. juni 2000 - 20:22 #1
$date=explode(",", date("H,i,s,m,d,Y"));
$dupdate=date("Y-m-d H:i:s", mktime($date[0],$date[1]-$hours,$date[2],$date[3],$date[4],$date[5]));
$SQL="select * from kalender where dato > '$dupdate'";

Ovenstående finder indlæg $hours tilbage, men du kan jo gøre det samme med dage, som du antyder ville være dig mest behjælpelig :-)

Hovedsagen er vist dit dateformat, der skal være Y-m-d H:i:s.
Avatar billede erikjacobsen Ekspert
06. juni 2000 - 20:37 #2
Hmm, steffen, du kan lige få en ekstra opgave... Tror du ikke dine to første linier kan
slås sammen til én. Jeg ved det ikke med sikkerhed, men det ville være flot hvis
du kunne !!
Avatar billede rasher Nybegynder
07. juni 2000 - 08:22 #3
Hvorfor skal dateformatet være Y-m-d H:i:s når et DATE felt i en MySQL database har formatet Y-m-d (http://mysql.borsen.dk/Manual_chapter/manual_Reference.html#Date_and_time_types)

Jeg har ikke lige haft tid til at teste dit forslag, men skal nok vende tilbage når jeg har prøvet.

Avatar billede steffen Nybegynder
07. juni 2000 - 11:10 #4
Sorry, jeg tænkte på datetime - det er den jeg altid har brugt, rutinen slog igen.

Men så har jeg vist ingen gode forslag - jeg kan kun sige at ovenstående virker, og ligeledes burde dit.

Forslag til fejlfinding: send os et SQL-dump af et par af de entries der sendes fejlagtigt med tilbage, samt et par linier kode på hver side af dit SQL statement.

erikjacobsen: Man kunne vel faktisk forsøge sig med fx:

$dupdate = date("Y-m-d H:i:s", mktime(date("Y"), date("i")-$hours, date("s"), date("m"), date("d"), date("Y")));

men om det er blevet pænere af denne grund, det vil jeg lade være med at kommentere :-)
Avatar billede erikjacobsen Ekspert
07. juni 2000 - 11:13 #5
Er det ikke blot

sql = "SELECT * FROM kalender where dato>'$datoen' "

der skal til ??
Avatar billede steffen Nybegynder
07. juni 2000 - 11:38 #6
Jow, det er da simpelthen det han har glemt, argh *blush*
Avatar billede rasher Nybegynder
07. juni 2000 - 13:21 #7
Problemet var tilsyneladende at jeg havde glemt de enkelte anførselstegne omkring variablen... så nu er det vist min tur til at blush'e...

Det jeg skrev var kun SQL kommandoen, men den jeg havde altså "$sql = " med. (i hvert fald noget tilsvarende)

Nu ved jeg ikke lige hvem der har fortjent pointene, så dem la'r jeg lige stå et øjeblik.
Avatar billede erikjacobsen Ekspert
07. juni 2000 - 13:41 #8
Re: 07-06-00 11:13:55
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