22 janvier 2015

SQL : La date du jour sans heure

Pour Obtenir en SQL la date du jour sans avoir l'heure, et afin que cela fonctionne quelque soit la culture du serveur SQL voila ce que j'ai trouvé de mieux :

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


Pour mémoire explication :
en 1) on fait la différence en jours entre GetDate et 0 (!) ==> cela donne le nombre de jour depuis la date 0 (!)
en 2) on ajoute à la date 0 (!!) le nombre de jour trouvé en 1) ==> la date sans l'heure !!

Enjoy !


Mise à jour 06/2021 : Ou alors plus simple CONVERT(DATE, @variableDateHeure)

2 commentaires:

  1. select GETDATE(), convert(varchar(max),getdate(),112) , convert(varchar(max),getdate(),103)

    RépondreSupprimer
    Réponses
    1. Cette manière fonctionne aussi si l'on veux uniquement afficher la data. Car le type retourné ici n'est plus une date mais une chaine de caractères.
      Convert(Varchar(max), xx, 112) renvoie une chaine aaaammjj (année sur 4 digit mois sur 2 et jour sur 2)
      Convert(Varchar(max), xx, 103) renvoie une chaine jj/mm/aaaa

      Supprimer