sql >> Databasteknik >  >> RDS >> Sqlserver

SQL konvertera datetime och subtrahera timmar

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);

Frågan ovan som använder dateadd kommer alltid att dra av 4 timmar. Om ditt mål är att konvertera en godtycklig datetime från UTC till lokal tid, då är det mer komplicerat eftersom offset som du behöver lägga till/subtrahera beror på den ursprungliga datetime. Ett enstaka värde som -4 fungerar inte alltid. Här är några idéer för att hantera det allmänna fallet:

Konverterar effektivt datum mellan UTC och lokal (dvs. PST) tid i SQL 2005



  1. Hur man lägger till och subtraherar dag, månad, år i datum genom MySql Query

  2. SQL*Plus hur accepterar man textvariabel från prompt?

  3. Postgres ändrar sekvensen manuellt

  4. MySQL Docker-behållaren sparar inte data till ny bild