Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL konwertuje datetime i odejmuje godziny

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

Powyższe zapytanie, które używa dateadd zawsze odejmie 4 godziny. Jeśli Twoim celem jest przekonwertowanie dowolnej daty i godziny z czasu UTC na czas lokalny, jest to bardziej skomplikowane, ponieważ przesunięcie, które musisz dodać/odjąć, zależy od oryginalnej daty i godziny. Pojedyncza wartość, taka jak -4, nie zawsze będzie działać. Oto kilka pomysłów na radzenie sobie z ogólnym przypadkiem:

Efektywna konwersja dat między czasem UTC a czasem lokalnym (np. PST) w SQL 2005



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co jest szybsze COALESCE CZY ISNULL?

  2. SQL-Server:Czy istnieje skrypt SQL, którego mogę użyć do określenia postępu procesu tworzenia kopii zapasowej lub przywracania SQL Server?

  3. Wygląda na to, że instrukcja SQL Server 2008 IIF nie jest włączona

  4. Instrukcje SQL Server SELECT powodujące blokowanie

  5. Zapytanie do serwera połączonego Postgresql bardzo wolne