Database
 sql >> Baza danych >  >> RDS >> Database

Jak uzyskać aktualną datę i godzinę (bez strefy czasowej) w T-SQL?

Problem:

Chcesz uzyskać aktualną datę i godzinę w T-SQL, ale nie chcesz przesunięcia strefy czasowej.

Rozwiązanie:

Użyjemy GETDATE(), CURRENT_TIMESTAMP i SYSDATETIME(), aby uzyskać aktualną datę i godzinę bez przesunięcia strefy czasowej. Dwie pierwsze funkcje pozwalają nam uzyskać aktualny czas z mniejszą precyzją. (GETDATE() jest funkcją T-SQL, podczas gdy CURRENT_TIMESTAMP jest standardową funkcją SQL; obie funkcje zwracają ten sam typ danych). Trzecia funkcja, SYSDATETIME(), uzyskuje dokładniejszy czas.

SELECT CURRENT_TIMESTAMP ;

Oto wynik zapytania:

2019-08-14 10:01:06.983

Dyskusja:

W bazie danych SQL Server CURRENT_TIMESTAMP funkcja zwraca bieżącą datę i godzinę (tj. czas na maszynie, na której działa ta instancja SQL Server) jako datetime typ danych. Datetime to mniej precyzyjny czas, który ma maksymalnie trzy ułamki sekund. (W naszym przykładzie jest to 983.)

GETDATE() jest podobna do CURRENT_TIMESTAMP i zwraca ten sam wynik. Różnica polega na tym, że CURRENT_TIMESTAMP jest standardem SQL, podczas gdy GETDATE() jest specyficzna dla SQL Server.

SELECT GETDATE() ;

Oczywiście, jeśli chcesz uzyskać dokładniejszą bieżącą datę i godzinę bez przesunięcia strefy czasowej, możesz użyć funkcji SYSDATETIME(). Ta funkcja zwraca datetime2 typ danych z siedmioma ułamkami sekund. Spójrz na poniższy przykład:

SELECT SYSDATETIME() ;

Oto wynik:

2019-08-14 10:01:06.9754163

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kopia zapasowa / eksport bazy danych z SSH

  2. Statystyka szarpnięcia kolanem :CXPACKET

  3. Gdy RÓŻNE <> GRUPUJ WG

  4. ScaleGrid wśród 100 najlepszych dostawców usług w chmurze

  5. Klucze obce, blokowanie i konflikty aktualizacji