sql >> Database >  >> RDS >> Sqlserver

SQL converteert datetime en trekt uren af

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

De bovenstaande zoekopdracht die gebruikmaakt van dateadd zal altijd 4 uur aftrekken. Als het je doel is om een ​​willekeurige datetime van UTC naar lokale tijd te converteren, dan is het ingewikkelder omdat de offset die je moet optellen/aftrekken afhangt van de originele datetime. Een enkele waarde zoals -4 zal niet altijd werken. Hier zijn enkele ideeën om met het algemene geval om te gaan:

Effectief datums converteren tussen UTC en lokale (dwz PST) tijd in SQL 2005



  1. Alternatief voor een MySQL tijdelijke tabel in Oracle

  2. Duplicaten verwijderen met unieke index

  3. Ruby on Rails:Hoe kan ik database.yml voor postgresql bewerken?

  4. Extra velden met SQL MIN() &GROUP BY