2009-02-11 7 views

Répondre

15

Une façon est de changer getdate() à votre nom de colonne,

select dateadd(dd, datediff(dd, 0, getdate())+0, 0) 
1

Oui. Il y a beaucoup de formats à choisir, donc je vais le lier à la place.

http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm

Si vous souhaitez mettre à zéro le temps comme votre poste implique, vous pouvez essayer ceci:

select cast(convert(varchar, getdate(), 101) as datetime) 
+1

converti (datetime, convertir (varchar, getdate(), 101)) –

+0

lien cassé. Nouveau lien pour la page http://library.cirr.com/Microsoft/SQL-Server-v7/html/ca-co_1.htm – monkeypushbutton

1

convert (varchar, le champ de date/valeur/etc, 101)

C'est le moyen le plus simple d'obtenir la date à partir d'un datetime.

0
declare @CurrentDate datetime 
set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0) 

--ou--

select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly 
from tblX 
0

Dans mes recherches, je suis tombé sur la solution suivante, il bandes temps en dehors de l'heure UTC seulement, mais je l'ai trouvé intéressant, donc je pensais que quelqu'un d'autre le ferait aussi:

FUNCTION TrimDate(@dt AS DATETIME) RETURNS DATETIME 
BEGIN 
    RETURN CAST(CAST((@dt - 0.500000038580247) AS INT) AS DATETIME) 
END 

Je suppose que ça tourne vite car tout ce qu'il fait c'est arrondir et lancer.

5

Voici une autre solution:

SELECT CAST(FLOOR(CAST(GETDATE() AS float)) AS smalldatetime) 
25

Pourquoi ne pas convertir à jour droite:

select convert(date, getdate()) 

Tronque jours, pas rondes. Days tour faire:

select convert(date, getdate() + 0.5) 
+1

Facilement la meilleure réponse pour sa simplicité et sa clarté. –

+6

Pas si vous utilisez SqlServer 2005 – TheMoot

+0

@TheMoot: Pourquoi pas? – nalply

Questions connexes