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?