mali87: MS SQL - Flag setzen bei abgelaufenem Datum

Hallo zusammen

Ich hoffe das mir hier jemand weiterhelfen kann.
Ich bin soeben einen SQL Syntax am erstellen...

Dabei möchte ich das ein ähnliches "Flag" bzw. Spalte bei jedem Datensatz hinten dran hinzugefügt wird mit dem Inhalt 0 = abgelaufen oder 1 = aktiv

Bei jedem Datensatz hat es ein (Ablaufdatum), nun möchte ich überprüfen wenn das (Ablaufdatum) älter als 6 Monate ist mit dem heutigen ist, dann soll in der Spalte eine 0 eingefügt werden. Falls es noch nicht abgelaufen ist mit einer 1.

Kann mir hier jemand weiterhelfen wie dies im MS SQL am besten umgesetzt wird?
Ist sowas ähnliches überhaupt möglich mit MS SQL? :)

Danke und Gruss
mali87

  1. Tach!

    Bei jedem Datensatz hat es ein (Ablaufdatum), nun möchte ich überprüfen wenn das (Ablaufdatum) älter als 6 Monate ist mit dem heutigen ist, dann soll in der Spalte eine 0 eingefügt werden. Falls es noch nicht abgelaufen ist mit einer 1.

    Auch MS-SQL sollte Datumsarithmetik kennen. Such dazu in der Dokumentation nach Datums- und Zeit-Funktionen. Du brauchst eine Funktion, die das aktuelle Datum/Zeit liefert, sowas wie MySQLs NOW(), und eine Funktion, die zum heutigen Datum einen Zeitspanne (6 Monate) abziehen kann. Dann hast du einen Wert, der mit dem Spaltenwert verglichen werden kann. Vielleicht reicht das schon aus, um ein Flag zu erzeugen, sprich: true/false oder 1/0. Wenn nicht, nimm sowas wie CASE WHEN ELSE (oder wenn vorhanden IF()).

    Genauer kann ich es dir nicht sagen, aber das ist das, wonach ich suchen würde, wenn ich das Problem hätte.

    dedlfix.

  2. Hola,

    vielleicht hilft dir dieser Ansatz

    UPDATE tabelle1  
    SET flag = (  
    CASE WHEN ((DATEDIFF(mm, GETDATE(), datum) >= 6)) THEN 1  
    ELSE 0  
    END  
    )
    

    lg quincunx