Announcement

Collapse
No announcement yet.

zwei Daten vergleichen!

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

  • zwei Daten vergleichen!

    nach längerem suchen und kurz vor der verzweiflung wende ich mich an euch... ;-). vielleicht kann mir jemand weiterhelfen!

    ich habe in einer tabelle eine spalte mit den daten (datum) ;-)
    nun möchte ich dieses datum vergleichen, ob es schon älter als z.B 100 tage ist. wenn ja soll er den eintrag löschen.

    bis jetzt bin ich immer daran gescheitert, dass ich es nicht geschafft habe 2 daten zu vergleichen. wenn möglich sollte dieser vergleich so schnell wie möglich asblaufen, da meine datenbank sehr viele einträge hat.

    vielen dank für die hilfe!!

    lg

  • #2
    Je nach DBMS gibt es verschiedene Funktionen als Builtin oder UDF für diesen Vergleich

    Comment


    • #3
      hmm... ich verstehe nicht ganz...

      ich verwende microsoft sql server 2005

      Comment


      • #4
        Die Funktionen unterscheiden sich je nach DBMS. deshalb gibt es hier auch Unterordner für versch. DBMS.
        Bei MSSQL müsste es mit datediff gehen
        http://www.tsql.de/transact-sql/func...o-datediff.htm

        Comment


        • #5
          Hallo,

          Schau dir mal die Funktion DATEDIFF an, die muesste dir eigentlich weiterhelfen.

          Vielleicht sowas in der Art:
          Code:
          DELETE FROM table1 WHERE DATEDIFF(d, datevalue1, GetDate()) > 100
          *-- robert.oh. --*

          Comment


          • #6
            Code:
            DELETE FROM table1 WHERE DATEDIFF(d, datevalue1, GetDate()) > 100
            genau so hab ichs eben schon probiert und es hat nicht geklappt, manchmal löscht er was und manchmal nicht...

            Code:
            where Datum < DateAdd(day, -100, GetDate());
            das hab ich auch schon probiert, solle aufs selbe rauslaufen, oder?

            Comment


            • #7
              Versuch mal:
              DELETE FROM table1 WHERE DATEDIFF('d', datevalue1, GetDate()) > 100

              Comment


              • #8
                Code:
                select * from dbo.B_AKUDaten
                where Datum < DateAdd(dd, -100, GetDate());
                
                delete from dbo.B_AKUDaten 
                where Datum < DateAdd(day, -100, GetDate());
                wenn ich zuerst den select befehl ausführe findet er noch alle, was auch gut ist. dann den delete befehl .
                und jetzt nochmal den select befehl. er FINDET daten, das dürfte nicht sein, oder? und das komische ist, wenn ich jetzt nochmal den select befehl ausführe findet er mehr daten. desto öfter ich den select befehl aufrufe, desto mehr daten krieg ich raus....

                Comment


                • #9
                  Das ist unlogisch, warum sollten bei weiteren Selects mehr Daten zurueckkommen, ohne dass in der Zwischenzeit neue Daten eingefuegt worden waeren?
                  Wo setzt du diesen Command ab? Im SQL Server Management Studio? Kann es sein, dass die (erste) Query einfach noch nicht fertig war?
                  (Entschuldige diese Frage.)
                  *-- robert.oh. --*

                  Comment


                  • #10
                    np, es steht unten immer Query executed successfully...

                    deswegen verstehe ich das ganze auch nicht...

                    Comment


                    • #11
                      Die DATEDIFF Funktion hat bei mir eigentlich immer super funktioniert - hmm, sehr interessant.
                      Hast du die obigen beiden Commands (SELECT + DELETE) getrennt von einander ausgefuehrt oder gemeinsam (wie hier angefuehrt, zuerst SELECT und dann gleich DELETE)?
                      *-- robert.oh. --*

                      Comment


                      • #12
                        getrennt voneinander!

                        Comment

                        Working...
                        X