Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Alle zwischen zwei Jahresangaben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Alle zwischen zwei Jahresangaben

    Hallo,

    ich hätte mal eine Frage.

    Geboren am 19.10.1820

    Gestorben am 22.05.1890

    Nun suche ich eine Möglichkeit alle Einträge aus der Datenbank zu holen, die zwischen 19.10.1820 und 22.05.1890 liegen.

    Das Datum ist jeweils in der Datenbank in date gespeichert.

    Danke für die Hilfe (-;

  • #2
    Das Datum ist jeweils in der Datenbank in date gespeichert.
    Date, also 1820-10-19?

    Nun suche ich eine Möglichkeit alle Einträge aus der Datenbank zu holen, die zwischen 19.10.1820 und 22.05.1890 liegen.
    Die zwischen diesen beiden Daten geboren wurden?

    Dann zB BETWEEN

    Sonst ev. auch hilfreich:

    http://dev.mysql.com/doc/refman/5.5/...on_str-to-date

    LG
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Date, also 1820-10-19?
      Korrekt.

      Die zwischen diesen beiden Daten geboren wurden?
      Auch korrekt.

      Naja, diese Seiten da mit den Funktionen versteht ein Anfänger wie ich es bin nicht immer (-;

      Kommentar


      • #4
        Naja, diese Seiten da mit den Funktionen versteht ein Anfänger wie ich es bin nicht immer
        Naja, bisschen Mühe...

        Code:
        ... WHERE `birth_date` BETWEEN '1820-10-19' AND '1890-05-22'
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Vielen Dank.

          Funktioniert und war gar nicht kompliziert. Hatte wohl die ganze Zeit was falsches gesucht (-;

          Kommentar


          • #6
            Was ich im Kopf habe ... BETWEEN schliesst von / bis ein, wenn das nicht erwünscht ist, kannst zB noch

            Code:
            ... WHERE `birth_date` > '1820-10-19' AND `birth_date` < '1890-05-22'
            machen, quasi als explzites größer / kleiner.
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              '1820-10-19'
              Ohne Zeitangage wird '00:00:00' ergänzt...

              Diese beiden Abfragen sind äquivalent:
              Code:
              WHERE `birth_date` BETWEEN '1820-10-19' AND '1890-05-22'
              WHERE `birth_date` > '1820-10-19' AND `birth_date` < '1890-05-22'
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von lstegelitz Beitrag anzeigen
                Diese beiden Abfragen sind äquivalent:
                Code:
                WHERE `birth_date` BETWEEN '1820-10-19' AND '1890-05-22'
                WHERE `birth_date` > '1820-10-19' AND `birth_date` < '1890-05-22'
                Ist BETWEEN nicht >= und <= ?

                Moment ... doch:

                If expr is greater than or equal to min and expr is less than or equal to max, BETWEEN returns 1, otherwise it returns 0.
                http://dev.mysql.com/doc/refman/5.1/...erator_between

                LG
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  [Erledigt] Alle zwischen zwei Jahresangaben

                  Doch, BETWEEN ist inklusive.

                  http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between
                  [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                  Kommentar


                  • #10
                    Die eigentliche Frage ist, ob das max-Datum den ganzen Tag einschließt.
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Wie schon richtig bemerkt, wird beim datetime Typ bei fehlender Zeitangabe sozusagen 00:00:00 ergänzt.
                      BETWEEN schliesst beim datetime Typ nur den Tag mit 00:00:00 mit ein, 00:00:01 nicht mehr.
                      Beim date Typ hab ich dann wohl immer den ganzen Tag.

                      Kommentar

                      Lädt...
                      X