m. heiss: Datumsabfrage in ASP

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

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

    1. (Falls es in Access nicht anders funktioniert)

      Entschuldige, hast ja MS SQL geschrieben, sollte also so gehen

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

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

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

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