Database
 sql >> Base de données >  >> RDS >> Database

Comment obtenir la date et l'heure actuelles (sans fuseau horaire) dans T-SQL

Problème :

Vous souhaitez obtenir la date et l'heure actuelles dans T-SQL, mais vous ne souhaitez pas le décalage horaire.

Solution :

Nous utiliserons GETDATE(), CURRENT_TIMESTAMP et SYSDATETIME() pour obtenir la date et l'heure actuelles sans décalage de fuseau horaire. Les deux premières fonctions nous permettent d'obtenir l'heure actuelle avec une précision moindre. (GETDATE() est une fonction T-SQL, tandis que CURRENT_TIMESTAMP est une fonction SQL Standard ; les deux fonctions renvoient le même type de données). La troisième fonction, SYSDATETIME(), obtient une heure plus précise.

SELECT CURRENT_TIMESTAMP ;

Voici le résultat de la requête :

2019-08-14 10:01:06.983

Discussion :

Dans une base de données SQL Server, le CURRENT_TIMESTAMP La fonction renvoie la date et l'heure actuelles (c'est-à-dire l'heure sur la machine sur laquelle cette instance SQL Server s'exécute) sous la forme d'un datetime Type de données. Datetime est un temps de précision inférieure qui a un maximum de trois secondes fractionnaires. (Dans notre exemple, il s'agit de 983.)

GETDATE() est similaire au CURRENT_TIMESTAMP et renvoie le même résultat. La différence est que CURRENT_TIMESTAMP est le standard SQL, tandis que GETDATE() est spécifique à SQL Server.

SELECT GETDATE() ;

Bien sûr, si vous souhaitez obtenir une date et une heure actuelles plus précises sans décalage de fuseau horaire, vous pouvez utiliser la fonction SYSDATETIME(). Cette fonction renvoie un datetime2 type de données avec sept secondes fractionnaires. Regardez l'exemple ci-dessous :

SELECT SYSDATETIME() ;

Voici le résultat :

2019-08-14 10:01:06.9754163