none
SQL Datum ändern RRS feed

  • Frage

  • Hilfe ich steh auf dem Schlauch ;(

    Ich will ein Datum in SQL 2008 R2 ändern, Beispiel

    Ich selektiere 01.01.2015

    <code>

    select * from [%DB%].[dbo].[%Tabelle%]

    where

    DATEPART(year, [%Datumsspalte%]) = 2015
    and DATEPART(month, [%Datumsspalte%]) = 1
    and DATEPART(day, [%Datumsspalte%]) = 1

    </code>

    Die Treffer die kommen passen. Kann mit jemand grad helfen wie der Syntax zum UPDATE ist, z.B. für den 02.03.2016?

    Aufbau der Spalte ist: 2015-01-01 00:00:00.000

    Vielen Dank
    Donnerstag, 2. April 2015 12:17

Antworten

  • Wenn ich es richtig verstanden habe, möchtest Du bei den gefundenen Datensätzen den Datumswert aktualisieren? Das geht mit einer einfach UPDATE Anweisung, wo Du den neuen Datumswert mit geben muss. Ich bevorzug da das ODBC Format, weil es unabhängig von den Spracheinstellungen immer funktioniert.

    UPDATE [%DB%].[dbo].[%Tabelle%]
    SET [%Datumsspalte%] = {d N'2016-03-02'}
     where 
         DATEPART(year, [%Datumsspalte%]) = 2015
     and DATEPART(month, [%Datumsspalte%]) = 1
     and DATEPART(day, [%Datumsspalte%]) = 1


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Andinistrator Donnerstag, 2. April 2015 13:57
    Donnerstag, 2. April 2015 12:35

Alle Antworten

  • Wenn ich es richtig verstanden habe, möchtest Du bei den gefundenen Datensätzen den Datumswert aktualisieren? Das geht mit einer einfach UPDATE Anweisung, wo Du den neuen Datumswert mit geben muss. Ich bevorzug da das ODBC Format, weil es unabhängig von den Spracheinstellungen immer funktioniert.

    UPDATE [%DB%].[dbo].[%Tabelle%]
    SET [%Datumsspalte%] = {d N'2016-03-02'}
     where 
         DATEPART(year, [%Datumsspalte%]) = 2015
     and DATEPART(month, [%Datumsspalte%]) = 1
     and DATEPART(day, [%Datumsspalte%]) = 1


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Andinistrator Donnerstag, 2. April 2015 13:57
    Donnerstag, 2. April 2015 12:35
  • Vielen Dank, klappt perfekt!
    Donnerstag, 2. April 2015 13:58
  • P.S.: Effizienter und performanter ist es, im Filter auf die Datumsfunktionen zu verzichten und gleich das gesuchte Datum anzugeben:

    UPDATE [%DB%].[dbo].[%Tabelle%]
    SET [%Datumsspalte%] = {d N'2016-03-02'}
    where [%Datumsspalte%]) = {d N'2015-01-01'}
    


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 2. April 2015 14:17