Announcement

Collapse
No announcement yet.

Views: Anzahl von Tagen berechnen

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

  • Views: Anzahl von Tagen berechnen

    Hallo, ich muss eine DB von Interbase zur MSDE migrieren, bin aber mit der SQL-Syntax der MSDE noch nicht so recht vertraut. Sinngemäß brauche ich <pre>select
    feld1, zieldatum, now - zieldatum as dauertage
    from tabelle1</pre>
    Ich verwenden für "now" die Funktion Getdate(), doch das Ergebnis "dauertage" soll natürlich als Integerwert dargestellt werden. Kann mir jemand helfen?

    Peter

  • #2
    Hallo,

    beim MS SQL Server (bzw. der MSDE) ist die Funktion <b>DATEDIFF</b> für die Berechnung der Datumsunterschiede zuständig. Um die Tages-Differenz zu ermitteln, ist der Aufruf <i>DATEDIFF(dd, Zieldatum, CURRENT_TIMESTAMP) AS DauerTage</i> zuständig, wobei der erste Parameter <i>dd</i> die Tagesdifferenz festlegt. Das folgende Beispiel demonstriert dies:
    <pre>
    USE tempdb
    <b>GO</b>
    <br>
    <b>CREATE</b> <b>TABLE</b> DatumBerechnen
    (
    RecID <b>INTEGER</b> <b>NOT</b> <b>NULL</b> <b>IDENTITY</b> <b>PRIMARY</b> <b>KEY</b>,
    Zieldatum DATETIME <b>NOT</b> <b>NULL</b>
    )
    <b>GO</b>
    <b>INSERT</b> <b>INTO</b> DatumBerechnen (Zieldatum) <b>VALUES</b> (<font color="#9933CC">'01.01.2004'</font>)
    <b>INSERT</b> <b>INTO</b> DatumBerechnen (Zieldatum) <b>VALUES</b> (<font color="#9933CC">'01.02.2004'</font>)
    <b>INSERT</b> <b>INTO</b> DatumBerechnen (Zieldatum) <b>VALUES</b> (<font color="#9933CC">'01.03.2004'</font>)
    <b>INSERT</b> <b>INTO</b> DatumBerechnen (Zieldatum) <b>VALUES</b> (<font color="#9933CC">'01.04.2004'</font>)
    <b>INSERT</b> <b>INTO</b> DatumBerechnen (Zieldatum) <b>VALUES</b> (<font color="#9933CC">'01.05.2004'</font>)
    <b>GO</b>
    <br>
    <b>SELECT</b>
    RecID, Zieldatum, <b>DATEDIFF</b>(<b>dd</b>, Zieldatum, <b>CURRENT_TIMESTAMP</b>) <b>AS</b> DauerTage
    <b>FROM</b>
    dbo.DatumBerechnen
    </pre>
    Ergebnis:
    <pre>
    RecID Zieldatum DauerTage
    ----------- ------------------------------------------------------ -----------
    1 2004-01-01 00:00:00.000 139
    2 2004-02-01 00:00:00.000 108
    3 2004-03-01 00:00:00.000 79
    4 2004-04-01 00:00:00.000 48
    5 2004-05-01 00:00:00.000 18

    (5 row(s) affected)
    </pre&gt

    Comment


    • #3
      Andreas,
      Tausend Dank

      Comment


      • #4
        Andreas,

        tausend Dank

        Comment

        Working...
        X