Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Obtenir le dernier jour du mois actuel

06/10/2008
Voici deux requêtes SQL Server permettant d'obtenir le dernier jour du mois en cours, à 23 h 59.

Méthode 1

SELECT DATEADD(ms, -2, DATEADD(MONTH, DATEDIFF(MONTH, 0,GETDATE() ) + 1,0))

Explication :
  • Nombre de mois écoulés :
    DATEDIFF(MONTH, 0, GETDATE())
  • Ajoute nbMoisEcoules + 1 depuis aujourd'hui (pour obtenir le premier jour du mois suivant) :
    DATEADD(MONTH, .. +1, 0)
  • Soustraction de deux milli-secondes au premier jour du mois suivant :
    DATEADD(ms, -2, ...)

Méthode 2

SELECT CONVERT(datetime, CONVERT(VARCHAR, DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0,getdate()) + 1,0)),103) + '23:59:59',0);

Explication :

  • Nombre de mois écoulés :
    DATEDIFF(MONTH, 0, GETDATE())
  • Ajoute nbMoisEcoules + 1 depuis aujourd'hui (pour obtenir le premier jour du mois suivant) :
    DATEADD(MONTH, .. +1, 0)
  • Soustraction d'un jour au premier jour du mois suivant :
    DATEADD(DAY, -1, ...)
  • Transtypage de la date/heure en chaîne ne contenant que la date :
    CONVERT(VARCHAR ... , 103)
  • Concatène avec une date heure :
    + ' 23:59:59'
  • Transtypage de la chaîne créée en date/heure :
    CONVERT(datetime ..., 0)

Attention, la valeur 103 est valable pour un SQL Server aux formats anglais/français. Pour le format américain, utiliser 101.
Dernière modification le 09/03/2019 - Quillevere.net

Rechercher sur le site

rss RSS info Informations