Liegen zwei Daten im Zeitraum zweier anderer?

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

  • Liegen zwei Daten im Zeitraum zweier anderer?

    Hallo,
    Folgendes Problem:
    Ich habe z.B. Folgenden Datensatz:

    Titel | 20061129 | 20061131

    Wobei letztere beiden Integer(8) sind und sollen Daten (Mehrzahl von "Datum") darstellen.

    Nun möchte ich, dass beim Eintragen eines neuen Datensatzes überprüft wird, ob dessen Daten im Zeitraum (zwischen begin und end) eines schon vorhandenen Datensatzes liegt und das Eintragen unterbinden.

    Beispiel:
    Es soll ein Datensatz mit den Daten
    Titel | 20061130 | 20061203
    eingetragen werden. Das soll jedoch unterbundne werden, da für diesen Zeitraum schon ein Datensatz vorhanden ist.

    Gibt es dafür entsprechende SQL-Funktionen oder muss ich mir weiter den Kopf über geschickte Verbindungen aus Vergleichen zerbrechen?

    Ich hoffe, es ist verständlich erklärt!

    Danke schonmal!

    Johannes

  • #2
    warum setzt du die beiden felder nicht auf date? such nach BETWEEN

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Danke, aber:
      1.) BETWEEN funktioniert auch bei Integer-Werten und
      2.) Ich habe einen Zeitraum, nicht ein bestimmtes Datum...

      Kommentar


      • #4
        Ich habe einen Zeitraum, nicht ein bestimmtes Datum
        das hast du auch bei date und between

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Das verstehe och von der Logik her nicht ganz, könntest du mir vielleicht ein kleines Beispiel dazu geben?

          Kommentar


          • #6
            ist doch ganz einfach. du sagst:
            suche mir zahlen, die zwischen zahl eins und zahl 2 liegen

            ich sage:
            suche mir tage, die zwischen tag 1 und tag 2 liegen

            ist das selbe in grün wie bei dir, nur hast du beim typ date noch mehr möglichkeiten, da es sich wirklich um ein datum handelt, das du verarbeitest.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Ich meinte jetzt eher die Syntax in SQL...

              Kommentar


              • #8
                PHP-Code:
                select from bestellungen where rechnungsdatum between '2005-01-01' and '2005-06-01' order by rechnungsdatum 
                z.b.

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Ja... dann hast du mich doch nocht nicht verstanden
                  Das Rechnungsdatum ist ja ein fixes Datum. Ich möchte es in etwa so prüfen (wird nicht funktioneren)


                  PHP-Code:
                  SELECT FROM bestellungen WHERE abgeschickt and angekommen BETWEEN 20061107 and 20061109
                  Geht das?

                  Kommentar


                  • #10
                    selber denken ist wohl nicht, oder?
                    PHP-Code:
                    select from bestellungen where (abgeschickt between '2005-01-01' and '2005-06-01') and (angekommen between '2005-01-01' and '2005-06-01'
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Danke, aber nein, das ist es nicht.
                      So weit bin ich auch schon gekommen...
                      Ich beschreibe jetzt mal mein genaues Problem:
                      Ich schreibe ein Umfrage-Script, bei dem immer nur eine Umfrage laufen darf. Beim Einstellen einer neuen Umfrage soll nun anhand des Anfangs- und Enddatums der neuen Umfrage und derer in der Datenbank festgestellt werden, ob die Umfrage erstellt werden darf.
                      Das ist Mathematik bzw. der Grund dafür, dass ich nichts beruflich in Richtung Informatik machen werde: Logik

                      Kommentar


                      • #12
                        Doch, genau das ist es (abgesehen von Tabellen- und Spaltennamen)


                        SELECT
                        FROM tabelle
                        WHERE
                          datumsspalte_umfragebeginn ZWISCHEN start_neue_umfrage AND ende_neue_umfrage
                          OR
                          datumsspalte_umfrageende ZWISCHEN start_neue_umfrage AND ende_neue_umfrage
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar

                        Lädt...
                        X