sql >> Databáze >  >> RDS >> Database

Jak získat aktuální datum a čas (bez časového pásma) v T-SQL

Problém:

Chcete získat aktuální datum a čas v T-SQL, ale nechcete posun časového pásma.

Řešení:

K získání aktuálního data a času bez posunu časového pásma použijeme GETDATE(), CURRENT_TIMESTAMP a SYSDATETIME(). První dvě funkce nám umožňují získat aktuální čas s nižší přesností. (GETDATE() je funkce T-SQL, zatímco CURRENT_TIMESTAMP je standardní funkce SQL; obě funkce vracejí stejný datový typ). Třetí funkce, SYSDATETIME(), získává čas s vyšší přesností.

SELECT CURRENT_TIMESTAMP ;

Zde je výsledek dotazu:

2019-08-14 10:01:06.983

Diskuse:

V databázi SQL Server CURRENT_TIMESTAMP funkce vrací aktuální datum a čas (tj. čas na počítači, kde běží instance SQL Server) jako datetime datový typ. Datetime je čas s nižší přesností, který má maximálně tři zlomkové sekundy. (V našem příkladu je to 983.)

GETDATE() je podobné CURRENT_TIMESTAMP a vrátí stejný výsledek. Rozdíl je v tom, že CURRENT_TIMESTAMP je standard SQL, zatímco GETDATE() je specifický pro SQL Server.

SELECT GETDATE() ;

Samozřejmě, pokud chcete získat přesnější aktuální datum a čas bez posunu časového pásma, můžete použít funkci SYSDATETIME(). Tato funkce vrací datetime2 datový typ se sedmi zlomkovými sekundami. Podívejte se na příklad níže:

SELECT SYSDATETIME() ;

Zde je výsledek:

2019-08-14 10:01:06.9754163

  1. Filtr měsíce a roku CriteriaQuery

  2. Jak vytvořit offline aplikaci pro internacionalizaci:Podpora více jazyků

  3. Jak zjistím, zda mám v transakci Oracle nezadanou práci?

  4. SQL dotaz k vytvoření tabulky v MySQL