Datumsabfrage in ASP
m. heiss
- asp.net
Hallo Spezialisten,
habe ein Problem mit einer Datumsabfrage in ASP. Habe in meiner MS-SQL Datenbank eine Spalte mit Geburtstagen (Datum) und möchte nun bei Aufruf einer Seite die Geburtstagskinder des heutigen Tages anzeigen. Desweiteren sollen alle Geburtstage der jeweiligen Monate (Jan-Dez) in Tabellenform ausgegeben werden. Wie schaut ein SQL-Statement aus, welches in der Datumsspalte nur nach bestimmten Monaten oder Tagen sucht?
Für eine Idee wäre ich sehr dankbar.
Gruß
Monika
Hallo,
habe ein Problem mit einer Datumsabfrage in ASP. Habe in meiner MS-SQL Datenbank eine Spalte mit Geburtstagen (Datum) und möchte nun bei Aufruf einer Seite die Geburtstagskinder des heutigen Tages anzeigen. Desweiteren sollen alle Geburtstage der jeweiligen Monate (Jan-Dez) in Tabellenform ausgegeben werden. Wie schaut ein SQL-Statement aus, welches in der Datumsspalte nur nach bestimmten Monaten oder Tagen sucht?
Grundsaetzlich ganz einfach-
select * from TableName where month(GeburtstagsSpalte) = month(now()) and day(GeburtstagsSpalte) = day(now())
Damit solltest Du alle heutigen Geburtstagskinder finden
select * from TableName order by month(GeburtstagsSpalte)
Sollte alle Geburtstage nach Monat sortiert zurueckgeben
(Falls es in Access nicht anders funktioniert)
Gruss, Mel
(Falls es in Access nicht anders funktioniert)
Entschuldige, hast ja MS SQL geschrieben, sollte also so gehen
Hallo,
ertmal Danke, habs auch gleich probiert, nun kommt die Fehlermeldung:
now wird nicht als Funktionsname erkannt !
hast du hierfür eine Antwort?
Gruß
Monika
hast du hierfür eine Antwort?
Hi,
die Antwort steht zwei, drei Postings hier drüber, denke ich -> GetDate()
Gruß, Frank
P.S. m.heiss und P.Kugler arbeiten zufällig nicht gerade am selben Problem???
hast du hierfür eine Antwort?
Hi,
die Antwort steht zwei, drei Postings hier drüber, denke ich -> GetDate()
Gruß, Frank
P.S. m.heiss und P.Kugler arbeiten zufällig nicht gerade am selben Problem???
Hallo Frank,
scheint so... ich hab einige deiner Tipps jetzt ausprobiert und bin fast am Ziel ... na ja fast halt, vielleicht findest du den Fehler..
Ermittle jetzt den aktuellen Monat und den Tag :
response.write month(date())
response.write day(date())
liefert mir 8 für den Monat und 5 für den Tag,
wenn ich die SQL Abfrage den Monat und den Tag " manuell" eingebe:
SELECT * FROM dbo.z_ma_db where month(geburtsdatum) = '8' and day(geburtsdatum) = '5' ORDER BY nachname, vorname ASC
bringt es mir das gewünscht Ergebnis.
Setze ich jedoch anstatt der 8 z.B. month(date()) bringt er ne Fehlermeldung: Syntaxfehler beim Konvertieren des varchar-Wertes 'month(date()' in eine Spalte vom Datentyp int.
wie krieg ich nun den aktuellen Monat in die SQL Abfrage.
Wenn du hier ne Antwort hast, wäre uns beiden geholfen...
Vielen Dank bis dato
Gruß Peter
Ermittle jetzt den aktuellen Monat und den Tag :
response.write month(date())
response.write day(date())
liefert mir 8 für den Monat und 5 für den Tag,
wenn ich die SQL Abfrage den Monat und den Tag " manuell" eingebe:
SELECT * FROM dbo.z_ma_db where month(geburtsdatum) = '8' and day(geburtsdatum) = '5' ORDER BY nachname, vorname ASC
bringt es mir das gewünscht Ergebnis.
Setze ich jedoch anstatt der 8 z.B. month(date()) bringt er ne Fehlermeldung: Syntaxfehler beim Konvertieren des varchar-Wertes 'month(date()' in eine Spalte vom Datentyp int.
wie krieg ich nun den aktuellen Monat in die SQL Abfrage.
Wenn du hier ne Antwort hast, wäre uns beiden geholfen...
Vielen Dank bis dato
Gruß Peter
Moin nochmals!
wie ich sehe führst du das SQL von einer ASP-Seite aus aus.
dann baue doch dieses SQL-Statement über einen String zusammen
momentan hast du
SELECT * FROM dbo.z_ma_db where month(geburtsdatum) = '8' and day(geburtsdatum) = '5' ORDER BY nachname, vorname ASC
pack davor ein strSQL = und setz es in " ", so wie es ist. inklusive der Hochkommas für 5 und 8
'5' => ist ein String, deshalb klappt es so
month(date()) gibt aber einen Integer-Wert zurück
deshalb müsste dein SQL so aussehen:
strSQL = "SELECT * FROM dbo.z_ma_db where month(geburtsdatum) = '" & month(date()) & "' and day(geburtsdatum) = '" & day(date()) & "' ORDER BY nachname, vorname ASC"
damit behandelt SQL den Wert als String .... wegen der Hochkommas die mit drin stehen.
Probiers mal so!
Gruß, Frank