webForumDet fria alternativet

Idiot fråga ang. Date()

ASP

9 svar · 224 visningar · startad av klementin

Medlem sedan aug. 2001117 inlägg
Frågan#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

------------------
/Klementin
-----------------------
C:\DOS
C:\DOS\Run
Run DOS Run
-----------------------

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 :)

------------------
"Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

[Redigerat av jorgen den 19 sep 2001]

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....

------------------
Det finns alltid ett bättre sätt...

[Redigerat av Frejan den 19 sep 2001]

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

------------------
essentitia preter non sans multiplicandum

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.

------------------
/Klementin
-----------------------
C:\DOS
C:\DOS\Run
Run DOS Run
-----------------------

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
%>

------------------
/Klementin
-----------------------
C:\DOS
C:\DOS\Run
Run DOS Run
-----------------------

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.

------------------
Det finns alltid ett bättre sätt...

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.

------------------
/Klementin
-----------------------
C:\DOS
C:\DOS\Run
Run DOS Run
-----------------------

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.

------------------
essentitia preter non sans multiplicandum

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 :-)

------------------
/Klementin
-----------------------
C:\DOS
C:\DOS\Run
Run DOS Run
-----------------------

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