Avatar billede donslund Nybegynder
19. august 2001 - 20:18 Der er 18 kommentarer og
1 løsning

Dato i MySQL

Kan man bruge dagsdato i en sql forespørgsel. Er det noget i retning af:
strSQL = \"Select * from adresser where foedselsdato = getdate()\"
Det skal bruges på en ASP-side.
Avatar billede crunch Nybegynder
19. august 2001 - 20:29 #1
det er ikke godt at bruge beregninger inde i SQL med MySQL, det virker med access, men ikke altid i MySQL. Prøv istedet at isolere dato som variabel først.
Avatar billede Slettet bruger
19. august 2001 - 20:29 #2
det er muligt, jeg har selv en query der ser således ud:

$sql = \"SELECT * FROM forum_tekst WHERE (TO_DAYS(now()) - TO_DAYS(oprettet) < \'1\')\";
Avatar billede Slettet bruger
19. august 2001 - 20:30 #3
Skal lige siges at det er på et timestamp...
Avatar billede Slettet bruger
19. august 2001 - 20:30 #4
..
Avatar billede crunch Nybegynder
19. august 2001 - 20:32 #5
Jeg konverterede på et tidspunkt et access baseret website til MySQL, og det eneste der skulle ændres var DNS + de steder hvor der var beregninger inden i SQL - Så det KAN være det... (men måske ikke)
Avatar billede donslund Nybegynder
19. august 2001 - 20:33 #6
crunch>> Hvordan isolere.
Jeg er ikke så erfaren ud i SQL.
Avatar billede crunch Nybegynder
19. august 2001 - 20:35 #7
\'(som tal felt i db)
variabel = getdate()
strSQL = \"Select * from adresser where foedselsdato = \"&variabel&\"\"

\'(som tekst felt i db)
variabel = getdate()
strSQL = \"Select * from adresser where foedselsdato = \'\"&variabel&\"\'\"
Avatar billede Slettet bruger
19. august 2001 - 20:36 #8
beregninger inde i MySQL er iøvrigt (næsten) altid det hurtigste...Så er der ikke så meget ping-pong frem og tilbage mellem SQL server og php parser..

Hvilket format har foedselsdato  ? Timestamp? Date?
Avatar billede donslund Nybegynder
19. august 2001 - 20:36 #9
Nu har jeg prøvet:
strSQL = \"Select * from adresser where foedselsdato = (now())\"

Det gav følgende fejl:
fejl \'80020009\'
Undtagelse opstod.

/default.asp, linje 82


Der er ingen poster i databasen, der skulle give udskrift i dag.
Avatar billede donslund Nybegynder
19. august 2001 - 20:37 #10
Fødselsdag har formatet Date
Avatar billede crunch Nybegynder
19. august 2001 - 20:39 #11
variabel = getdate()
strSQL = \"Select * from adresser where foedselsdato = #\"&variabel&\"#\"
Avatar billede donslund Nybegynder
19. august 2001 - 20:41 #12
\"Typerne stemmer ikke overens\"
Fejl!
Avatar billede crunch Nybegynder
19. august 2001 - 20:44 #13
variabel = date()
strSQL = \"Select * from adresser where foedselsdato = #\"&variabel&\"#\"
Avatar billede donslund Nybegynder
19. august 2001 - 20:48 #14
Faktisk, så skal den jo reagere på kun dato og måned. Altså skal den hente de personer der har fødselsdag i dag, selvom de født i 1966 eller et hvilket som helst andet år.
Avatar billede crunch Nybegynder
19. august 2001 - 20:52 #15
nå okey. Så skal du jo lave variablen om før du spørger på den. også skal du bruge LIKE istedet for = så den tager tale der passer med de første 2x2 cifre.
Avatar billede donslund Nybegynder
20. august 2001 - 08:10 #16
Er der ikke et eller anfdet sted, hvor man kan læse sig til disse vel nok basale sql færdigheder?
Avatar billede donslund Nybegynder
20. august 2001 - 08:29 #17
Efter en tur på www.mysql.com fandt jeg dette. Kan det ikke bruges på en eller anden måde.

strSQL = \"Select * from adresser WHERE MONTH(foedselsdato) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH))\"

Avatar billede dazzeler Nybegynder
20. august 2001 - 21:37 #18
hvis du vil hente data fra databasen så hedder function curdate()
Avatar billede donslund Nybegynder
21. august 2001 - 10:08 #19
Jeg fandt selv en løsning med PartDate
Ellers tak for hjælpen.
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