1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Vergleich in einer errechneten Spalte

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von tomon, 4 Juli 2019.

  1. tomon

    tomon Neuer Benutzer

    Hallo,
    ich möchte eine Zeitdifferenz aus zwei Datumsfeldern errechnen.
    Also: Datum1-Datum2=Differenz in Minuten.
    Diese neue Spalte 'Differenz' möchte ich dann vergleichen ob die Abweichung größer 3 Minuten ist.

    Ich bekomme bei allen Funktionen (If else, case when, group usw.) die Meldung das Differenz keine Spalte ist.

    Kann man das überhaupt so machen oder muss die Spalte 'Differenz' in der Datenbank zum Vergleich gespeichert werden?
    Hat jemand eine Idee dazu?

    Vielen Dank. Thomas
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Dazu brauchst Du keine extra Spalte, ist ja berechenbar. Kurzdemo mit PostgreSQL:

    Code:
    test=# create table tomon(datum1 timestamp, datum2 timestamp);
    CREATE TABLE
    test=*# insert into tomon values (now(), now()+'1minute'::interval);
    INSERT 0 1
    test=*# insert into tomon values (now(), now()+'100minute'::interval);
    INSERT 0 1
    test=*# select * from tomon ;
               datum1           |           datum2           
    ----------------------------+----------------------------
     2019-07-04 14:33:18.408628 | 2019-07-04 14:34:18.408628
     2019-07-04 14:33:18.408628 | 2019-07-04 16:13:18.408628
    (2 rows)
    
    test=*# select *, case when datum2-datum1 > '3minutes'::interval then 'x' else null end as "more than 3 minutes" from tomon ;
               datum1           |           datum2           | more than 3 minutes
    ----------------------------+----------------------------+---------------------
     2019-07-04 14:33:18.408628 | 2019-07-04 14:34:18.408628 |
     2019-07-04 14:33:18.408628 | 2019-07-04 16:13:18.408628 | x
    (2 rows)
    
    test=*#
    
     
  3. tomon

    tomon Neuer Benutzer

    Hallo akretschmer,

    vielen Dank für den Tipp! Ich habe viel zu kompliziert gedacht. :)
    Bei MS SQL ist der Syntax etwas abweichend aber genau das ist die Lösung!!
    Vielen Dank für die Hilfe. Thomas
     
    akretschmer gefällt das.
  4. ukulele

    ukulele Datenbank-Guru

    datediff(minute,datum1,datum2) ist dein Freund.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden