I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Idet værdien 1 er = 1 dag, så det er ikke nødvendigt med en DateAdd. Desuden vil kjulius SQL give en syntaksfejl, idet der imellem parametrene ikke skal være , men ;
If you use DateAdd("d";7;Date()) in query designer then go to SQL view you will see that ; have been changed to ,
So in SQL DateAdd("d",7,Date()) should be valid.
The reason why ; is used in query designer (and other places) is because , is used as the decimal seperator with Danish Regional settings. With English Regional settings ; isnt necessary as . is used as decimal seperator, so , is accepted also in query designer (and other places).
--> mugs: Jeg er ikke enig i, at den vil give en fejl. Mit udgangspunkt var, at det var en SQL, som blev sendt via en ODBC request fra PHP. Det er sådan spørgsmålet ser ud for mig. I så fald skal der i høj grad være komma mellem parametrene. Det samme skal der i ren ACCESS med mindre man bruger den grafiske overflade, hvor det ganske rigtigt er semikolon man skal bruge. Men da udgangspunktet er som det er, er det meget usandsynligt, at spørgeren skulle bruge den grafiske overflade.
Du har derimod ret i, at DateAdd ikke er nødvendig i dette tilfælde. Den gør dog heller ingen skade, og - nåja, det er personlig smag - jeg synes det øger kodens gennemskuelighed og gør det nemmere senere at ændre til andre enheder end dage.
--> terry: Thanks for the elaborating explanation.
OK, jeg har måske ikke været helt klar i mit spørgsmål.
Som det er nævnt arbejder jeg i PHP med en Access DB. I DB har jeg en tabel, med fødselsdage. Jeg ønsker at få et udtræk med alle personer, der har fødselsdag inden for de kommende 7 dage.
Den query jeg har vist i mit spørgsmål, virkede da jeg tidligere arbejdede i ASP, så det kan godt være at jeg skal flytte spørgsmålet til PHP kategorien i stedet, da problemet måske snarere er i programmeringssproget.
På baggrund af jeres forslag har jeg rettet min query til:
$strSQL3 = "SELECT * FROM birthday "; $strSQL3 = $strSQL3."WHERE dato BETWEEN Date() AND Date()+7 "; $strSQL3 = $strSQL3."ORDER BY dato ASC";
og jeg har forsøgt at udskifte den mellemste linie med
$strSQL3 = $strSQL3."WHERE dato BETWEEN Date() And DateAdd('d',7,Date()) ";
og sågar med
$strSQL3 = $strSQL3."WHERE dato = Date()";
Men ingen af dem virker, til trods for at jeg har indlagt testdata med fødselsdag i dag og om to dage.
Er der nogen bud på problemet? PHP returnerer en num_rows på -1
Er datoen på serveren rigtig? Det er datoen på serveren, ikke klienten der er udgangspunktet, når man sender en SQL med Date() funktionen til serveren.
I min Access tabel står datoen i formatet 'dd-mm-yyy'. Jeg har prøvet at indtaste som 'mm-dd-yyyy', men access ændrede det selv tilbage.
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.