09. juli 2008 - 08:45Der er
8 kommentarer og 1 løsning
Vis kun fremtidige planer
Hvordan får jeg lavet, således at kun fremtidige planer bliver udskrevet?
Jeg bruger denne formatering til dato som jeg har fundet her på eksperten:
session.lcid=2057
dim dag, moned, aar, dato
dag = Day(now()) moned = Month(now()) aar = Year(now()) dato = dag & "/" & moned & "/" & aar
Mit mySQL udtræk ser sådan ud:
SQL = "SELECT matchID, matchModstander, matchDato FROM upcoming WHERE matchDato > now() ORDER by matchDato ASC
Mit problem er, at now() ikke bruger den dato formatering som jeg benytter, hvordan kan jeg gøre således at datoformatet now() ændres så det kommer til at se sådan ud: dd/mm/yyyy og ikke yyyy/mm/dd?
Now er databasen's indbyggede funktion og virker altid som den skal. Så længe dataformatet i matchDato er af datetime typen. Det er fuldstændig lige meget hvilket format du bruger i din kode...
Da jeg ikke er interesseret i at få klokkeslet med, har jeg forsøgt at bruge date() hvilket også fungere fint indtil jeg vil sammenligne med datoen i min SQl DB.
jeg har prøvet med
SQL = "SELECT matchID, matchModstander, matchDato FROM upcoming WHERE Date() =< matchDate"
Men får følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-4.1.11-log]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 ') =< matchDate' at line 1
Lilge for at være sikker. Hvis jeg vælger now() og feltet i min DB er af typen date så er den ligeglad om now() også indeholder klokkeslet? Jeg kan nemlig ikke få det til at virke med Date() ??
Hvis datatypen er Date så skal date funktionen også virke. Det er faktisk lige meget om det er now, date eller en helt anden date funktion. Så længe datatypen på kollonen er en af dem som endeholder en dato, kan ALLE date funktioner bruges.
Eneste forskel på date() og now() er at now har de aktuelle timer/min/sek med. Ved date er det sat til 00:00:00.
Derfor: select * from enTabel where dateKol < date() select * from enTabel where dateKol < now()
Vil faktisk svare til: select * from enTabel where dateKol < '2008-07-09 00:00:00' select * from enTabel where dateKol < '2008-07-09 09:42:33'
Underligt.. Jeg kan ikke få det til at virke med Date() med med now() virker det fint. Kan det være fordi at jeg har valgt at feltet i DB'en er af formatet date? og ikke datetime?
Hvis det virker med now() så lad det være sådan, du opdager nok engang i fremtiden hvorfor date() ikke virkede :o)
.o) <-- one Eyed Jack
Synes godt om
Ny brugerNybegynder
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.