web-dev-qa-db-fra.com

Obtenir la date actuelle dans SQL Server?

Comment puis-je obtenir la date actuelle dans MS-SQL Server 2008 R2?

Le format de la colonne dans ma base de données est DATETIME et les dates sont stockées au format suivant:

+++++++++++++ Vrdate ++++++++++
|                             |
|   2012-11-18 00:00:00.000   |
|   2012-11-19 00:00:00.000   |
|   2013-11-18 00:00:00.000   |
|   2012-12-01 00:00:00.000   |
|   2010-10-09 00:00:00.000   |
|   2012-11-11 00:00:00.000   |
|                             |
+++++++++++++++++++++++++++++++

J'ai cherché mais je n'ai pas trouvé le moyen d'obtenir la date dans ce format (c'est-à-dire le temps auquel elle est associée dans 00:00:00.00). J'ai trouvé la fonction GETDATE(), mais elle indique l'heure actuelle ainsi que la date. Ce que je veux, c'est obtenir la date au format suivant: CurrentDate 00:00:00.00

Comment puis-je l'obtenir?

70
Kamran Ahmed
SELECT CAST(GETDATE() AS DATE)

Renvoie la date actuelle avec la partie heure supprimée.

DATETIMEs ne sont pas "enregistrés dans le format suivant". Ils sont stockés dans un format binaire.

SELECT CAST(GETDATE() AS BINARY(8))

Le format d'affichage dans la question est indépendant du stockage.

Le formatage dans un format d'affichage particulier doit être effectué par votre application.

115
Martin Smith

Comme vous utilisez SQL Server 2008, allez avec la réponse de Martin.

Si vous vous trouvez dans l'obligation de le faire dans SQL Server 2005, où vous n'avez pas accès au type de colonne Date, utilisez:

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

SQLFiddle

15
Bridge