Announcement

Collapse
No announcement yet.

Datum in Tabelle mit 2 Datumwerte vergleichen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datum in Tabelle mit 2 Datumwerte vergleichen

    Hallo ihr

    ich hät da mal ne frage ^^
    also, ich muss daten von personen aus der datenbank lesen, wo das geburtsdatum zwischen den übergebenen Datumwerte liegt. wobei aber nur der Tag und das Monat verglichen wird

    @fromDate = 01.01.2007
    @toDate = 01.06.2007

    und da sollen dann alle personen halt rauskommen, von denen halt das gebdatum dazwischen liegt

    bei mir geht das ja wunderbar .. nur halt falsch
    ich bekomm alle raus, wo der tag zwischen 01 und 01 liegt xD

    mein sql-befehl:
    SELECT *
    FROM personen
    WHERE Day(Geburtsdatum) between Day(@fromDate) AND Day(@toDate)
    AND Month(Geburtsdatum) between Month(@fromDate) AND Month(@toDate)

    danke schon mal für eure hilfe

    LG mokona

  • #2
    Hi,

    where (Month(Geburtsdatum)>Month(@fromDate)
    and Month(Geburtsdatum)<Month(@toDate))
    Or (Month(Geburtsdatum)=Month(@fromDate)
    and day(Geburtsdatum)>=Day(@fromDate))
    Or (Month(Geburtsdatum)=Month(@toDate)
    and day(Geburtsdatum)<=Day(@toDate))

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Ps:

      wenn die Vergleichsdaten immer dieselbe Jahreszahl haben,
      kannst Du die auch an das Geburtsdatum basteln und einfach mit between abfragen.
      docendo discimus

      Comment


      • #4
        OMG ... O_O +staun*
        wie hast du das jetzt so schnell hinbekommen??
        ich hab da seit ca 13 uhr rumge"bastelt"

        ich daaaanke dir vielmals

        Comment


        • #5
          Hallo,

          probier mal folgendes:
          Code:
          Select * from person
          where Right(Convert(nvarchar,Geburtsdatum,12),4) between
          	Right(Convert(nvarchar,@fromDate,12),4) and
          	Right(Convert(nvarchar,@toDate,12),4)
          Ich denk, das sollte das Problem lösen.

          Gruß,
          Volker

          Comment


          • #6
            ok.. also die select-befehls funktionieren beide am SQL Server
            doch im webservice gibt der mit nur die vom jänner aus (bei 01.01.2007 - 01.07.2007)

            ich danke euch vielmals

            Comment


            • #7
              Hallo,

              könnte das ein Problem mit dem Datumsformat sein ?
              Amerikanisches Format: mm/dd/yyyy
              Deutsche Format: dd/mm/yyyy
              Wenn ein Webserver da mitspielt könnte es ein problem geben.
              Versuch doch mal den 24. Januar als ein Datum zu verwenden.

              Gruß,
              Volker

              Comment


              • #8
                Wenn es sich immer um 1.irgendwas bis 1. irgendwasanderes handelt, dann nehme ich mal an, bei zB 1.1. - 1.7. will man nur die mit 30.6. noch haben, die mit 1. 7. aber nicht mehr. Da würde folgendes reichen:

                select * from person where MONTH(geburtsdatum) in (1,2,3,4,5,6)

                bye,
                Helmut

                Comment


                • #9
                  also das prob war (wie volker richtig sagt) das man ein amerikanisches datum eingeben soll
                  ich hab mich bei der eingabe 01.01. - 01.07. noch gewundert warum er mir nur datensätze zurückgibt, wo bei geburtsdatum nur die mit januar sind
                  bis mir dann mein arbeitskollege erklärt hat (nach einer halben stunde und er mein klagen nicht mehr ertragen hat ^^) das man yyyy-mm-dd oder halt mm.dd.yyyy eingibt xD

                  Comment

                  Working...
                  X