Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL konvertiert datetime und subtrahiert Stunden

declare @createTime datetime = '2012-10-06 02:29:37.243';

-- original value, default formatting
select @createTime;

-- formatted
select convert(varchar, @createTime, 100);

-- subtract 4 hours, formatted
select convert(varchar, dateadd(hour, -4, @createTime), 100);

Die obige Abfrage, die dateadd verwendet werden immer 4 Stunden abgezogen. Wenn Sie eine beliebige Datumszeit von UTC in die Ortszeit umwandeln möchten, ist dies komplizierter, da der Offset, den Sie addieren/subtrahieren müssen, von der ursprünglichen Datumszeit abhängt. Ein einzelner Wert wie -4 wird nicht immer funktionieren. Hier sind einige Ideen für den Umgang mit dem allgemeinen Fall:

Effizientes Konvertieren von Datumsangaben zwischen UTC und lokaler (dh PST) Zeit in SQL 2005