Idiot fråga ang. Date()

ASP

9 svar · 288 visningar · startad av klementin

Medlem sedan aug. 2001117 inlägg
Trådstart#1

Hej!
Har en databas (Access) där olika personers födelsedatum finns. Dom är skrivna så här: 1972-09-19, och nu vill jag selektera ut dom som är födda på dagensdatum. Alltså alla som är födda tex. 09-19. Hur gör jag detta. Så här ser koden ut just nu:

SQL = "SELECT * FROM UserInfo WHERE UserBornDate = '" & Date() & "' ORDER BY UserLastName ASC"

Men då hämtar den ju bara personer som är födda 2001-09-19.

En fråga till...
Jag brukar alltid ta SELECT * FROM bla bla bla, när jag selekterar, försämrar detta prestandan eftersom jag använder ju knappast alla uppgifter den hämtar då, utan borde jag välja vad den ska hämta från databasen? Förstår ni (jag fattar knappt själv vad jag skrev)?

Tack på förhand

Medlem sedan feb. 20012 412 inlägg
#2

Hej!

Ja, du hämtar ju en massa onödigt.

skriv tex istället:

strSQL = "SELECT namn, adress, epost FROM tabellen " & _
" ORDER BY namn DESC "

om du nu inte ska använda alla fält i databasen.

mvh Jörgen :)

Medlem sedan juni 200167 inlägg
#3

Prova med WHERE UserBornDate = '%09-19'

Rätta mig om jag har fel. Vild chansning...

Förmodligen helfel eftersom det var det 13:de inlägget. Hmmmm....

Medlem sedan dec. 200012 464 inlägg
#4
SELECT * 
  FROM UserInfo 
 WHERE month(UserBornDate) = month(date)
   and day(UserBornDate) = day(date)
Medlem sedan aug. 2001117 inlägg
#5

jorgen >> Okey då ska jag börja med det.

Frejan >> Nix det fungerar inte + att det ska ju vara "dynamiskt" om du förstår vad jag menar.

Medlem sedan aug. 2001117 inlägg
#6

LarsG kan man alltid lita på :-) men nu blir det så här (jag är en nolla när det gäller ASP så det är säkert mitt fel):

Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.

Koden ser ut så här:

<%
SQL = "SELECT UserBornaDate, UserLastName, UserFirstName FROM UserInfo WHERE month(UserBornDate) = month(date) AND day(UserBornDate) = day(date) ORDER BY UserLastName ASC"
Set rs = Conn.Execute(SQL)
Do while not rs.EOF
%>

****

<%
rs.MoveNext
Loop

rs.Close()
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>

Medlem sedan juni 200167 inlägg
#7

Var ett exempel, går ju att lagra värdet på dagen du vill få ut i en vaiabel....

Men varför???

LarsG visade ju hur man gör på riktigt.

Medlem sedan aug. 2001117 inlägg
#8

Jag ber om ursäkt om jag lät otacksam för ditt exempel men det är jag inte, tvärt om. Jag får det inte att funkta, dels pga. att jag är en idiot när det gäller ASP.

Medlem sedan dec. 200012 464 inlägg
#9

Det felmeddelande som du fick beror oftast på att man skrivit ett felaktigt kolumn- eller tabellnamn i sql-frågan.

<%
SQL = "SELECT UserBornDate, UserLastName, UserFirstName FROM UserInfo WHERE month(UserBornDate) = month(date) AND day(UserBornDate) = day(date) ORDER BY UserLastName ASC"
Set rs = Conn.Execute(SQL) 
Do while not rs.EOF
%>

Du hade skrivit userBornaDate på ett ställe men userBornDate på andra, så det är kanske det som är felet.

Medlem sedan aug. 2001117 inlägg
#10

Stämmer bra det (man har lite för bråttom ibland). Nu fungerar det klockrent. Ett stort TACK till er alla :-)

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)