Det beror till mångt och mycket på två saker:
- vad innehåller variabeln varDate?
- På vilket sätt fungerar det inte?
Snälla, skriv ut färdiga SQL-frågor när du undrar varför något inte fungerar...
10 svar · 369 visningar · startad av WebbisNet
Hur får jag denna SQL att fungera i MySQL
Set bday=objConn.Execute("Select * From tblUsers where persnr='"& varDate &"'")
Datatypen är date
Det beror till mångt och mycket på två saker:
Snälla, skriv ut färdiga SQL-frågor när du undrar varför något inte fungerar...
varDate innehåller dagens datum och enligt databasen ska en person ha födelsedag idag men SQL-satsen säger att ingen har det
Select * From tblUsers where persnr=2006-01-21
enligt utskriften av satsen
Skriv ut!
Vad exakt innehåller variabeln?
Du måste se till att datumen är av rätt format!
utskriften blev Select * From tblUsers where persnr=2006-01-21 och det är samma format i databasen
Konstigt, det verkar som om du tappade apostroferna vid copy/paste... :o
Och det råkar inte vara så att fältet i databasen innehåller tid också?
har ändrat datatypen till text, när jag har ' ' får flera personer födelsedag och alla har samma ålder och det stämmer inte enligt databasen, och varDate=Date() så det är ingen tid där eller i db-n
Set bday=objConn.Execute("Select * From tblUsers where persnr='"& varDate &"'")
ger detta
Select * From tblUsers where persnr='2006-01-21'
Den som ska fylla år har detta i databasen 1981-01-21
?!?!?!
Det skall vara som du hade det från början, dvs datum skall lagras i fält av datumtyp, samt datum skall ha apostrofer runt sig i SQL-frågan. Om du då inte får rätt resultat av den "korrekta" SQL-frågan så innebär det att antingen är det ingen som har födelsedagen 21/1 år 2006, eller så tittar du på fel fält.
När jag använde Access så fungerade denna:
Set bday=objConn.Execute("Select * From tblUsers where month(persnr) = month(date()) and day(persnr) = day(date())")
men samma med MySQL blir:
[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]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 '()) and day(persnr) = day(date())' at line 1
@nders skrev:
?!?!?!
Det skall vara som du hade det från början, dvs datum skall lagras i fält av datumtyp, samt datum skall ha apostrofer runt sig i SQL-frågan. Om du då inte får rätt resultat av den "korrekta" SQL-frågan så innebär det att antingen är det ingen som har födelsedagen 21/1 år 2006, eller så tittar du på fel fält.
Ja.......
Om du frågar efter ett komplett datum är det inte så konstigt att du inte får träff när du inte anger rätt år i SQL-frågan...
Fråga gärna efter rätt saker från början.
strSQL="select *
from tblUsers
where extract(month from persnr) = " & month(varDate) & " and extract(day from persnr) = " & day(varDate)
edit: lösningen kan också hittas om man lite snabbt söker på "MySQL and födelsedagar" här på wF...
Ok, tack @nders, du är en räddande ängel :-D