Liegen zwei Daten im Zeitraum zweier anderer?

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

  • 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

    Comment


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

      Comment


      • #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

        Comment


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

          Comment


          • #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

            Comment


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

              Comment


              • #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

                Comment


                • #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?

                  Comment


                  • #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

                    Comment


                    • #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

                      Comment


                      • #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...

                        Comment

                        Working...
                        X