Quest-ce que la fonction de valeur CURRENT_DATE ou de date actuelle pour SQL Server?

Quelle est la fonctionnalité SQL Server qui vous permet dobtenir la date actuelle sous forme de type DATE comme le SQL Fonctionnalité standard « s CURRENT_DATE. Quelle est la <current date value function> pour SQL Server?

En utilisant PostgreSQL, je » cherche pour quelque chose comme,

SELECT CURRENT_DATE; current_date -------------- 2018-06-27 (1 row) 

Answer

Vous pouvez utiliser soit GETDATE (type de retour datetime ) ou SYSDATETIME (type de retour datetime2 ), la différence étant la précision jusquà nanosecondes pour SYSDATETIME().

Exemple :

SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime 

Résultats:

 fn_GetDate fn_SysDateTime 2018-06-27 10:31:18.963 2018-06-27 10:31:18.9659170

Voir Types de données et fonctions de date et dheure (Transact-SQL) dans la documentation du produit.


Pour être complet, SQL Server reconnaît également CURRENT_DATE comme mentionné dans la question, en tant que fonction scalaire ODBC :

SELECT {fn CURRENT_DATE()}; 

Ceci renvoie varchar(10), il faudrait donc un cast explicite ou une conversion en date type de données:

SELECT CONVERT(date, {fn CURRENT_DATE()}); 

Le dans les fonctions sont recommandées par rapport aux fonctions scalaires ODBC.

Réponse

CAST (... to date) avec GETDATE() ou SYSDATETIME()

Le meilleur moyen est

SELECT CAST( GETDATE() AS date ); 

Par extension dans SQL Server, vous pouvez convertir SYSDATETIME() à ce jour,

SELECT CAST( SYSDATETIME() AS date ); 

La documentation sur SYSDATETIME (Transact-SQL) montre quelques exemples supplémentaires,

SELECT CONVERT (date, SYSDATETIME()) ,CONVERT (date, SYSDATETIMEOFFSET()) ,CONVERT (date, SYSUTCDATETIME()) ,CONVERT (date, CURRENT_TIMESTAMP) ,CONVERT (date, GETDATE()) ,CONVERT (date, GETUTCDATE()); /* All returned 2007-04-30 */ 

Il peut y avoir des avantages CAST (GETDATE() AS date), comme renvoie nativement moins de précision.

Commentaires

  • Cest comme ça que je lai toujours fait, même si vous lancez à DATE, est-ce important si le temps dentrée a une précision à la nanoseconde?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *