Accueil > > > SQL SERVER - OBTENIR LA DATE DU DERNIER JOUR DU MOIS (GET LAST DAY OF MONTH).
SQL SERVER - OBTENIR LA DATE DU DERNIER JOUR DU MOIS (GET LAST DAY OF MONTH).
Information sur la source
Description
UDF "GetLastDayOfMonth" pour obtenir la date du dernier jour du mois avec ou sans gestion de l'heure.
Source
- CREATE FUNCTION [dbo].[GetLastDayOfMonth](@Dte DATETIME, @AtMidnight BIT)
- RETURNS DATETIME
- /* Retourne la date du dernier jour du mois avec ou sans gestion de l'heure.
- Exemples d'utilisation :
- Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), 1) >> 2002-02-28 00:00:00.000
- Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), 0) >> 2007-02-28 23:59:59.997
- Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), Null) >> 2007-02-28 12:20:49.250
- */
- BEGIN
- IF @AtMidnight= 0
- RETURN DATEADD(MILLISECOND, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Dte) + 1, 0))
- ELSE
- SET @Dte=DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEADD(DAY, 1-DAY(@Dte), @Dte)));
-
- IF @AtMidnight= 1
- RETURN CAST(CONVERT(CHAR(10), @Dte, 103) AS DATETIME);
-
- RETURN @Dte;
- END
-
- CREATE FUNCTION [dbo].[GetLastDay](@Dte DATETIME)
- RETURNS DATETIME
- /* Retourne la date du dernier jour du mois sans gestion de l'heure.
- Exemples d'utilisation (tests de validation) :
- Select dbo.GetLastDayOfMonth(Cast('01/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
- Select dbo.GetLastDayOfMonth(Cast('10/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
- Select dbo.GetLastDayOfMonth(Cast('28/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
- */
- BEGIN
- SET @Dte=DATEADD(MONTH, 1, @Dte)
- RETURN DATEADD(DAY, -DAY(@Dte), @Dte)
- END
CREATE FUNCTION [dbo].[GetLastDayOfMonth](@Dte DATETIME, @AtMidnight BIT)
RETURNS DATETIME
/* Retourne la date du dernier jour du mois avec ou sans gestion de l'heure.
Exemples d'utilisation :
Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), 1) >> 2002-02-28 00:00:00.000
Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), 0) >> 2007-02-28 23:59:59.997
Select dbo.GetLastDayOfMonth(Cast('05/02/2007 12:20:49.250' As DateTime), Null) >> 2007-02-28 12:20:49.250
*/
BEGIN
IF @AtMidnight= 0
RETURN DATEADD(MILLISECOND, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Dte) + 1, 0))
ELSE
SET @Dte=DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEADD(DAY, 1-DAY(@Dte), @Dte)));
IF @AtMidnight= 1
RETURN CAST(CONVERT(CHAR(10), @Dte, 103) AS DATETIME);
RETURN @Dte;
END
CREATE FUNCTION [dbo].[GetLastDay](@Dte DATETIME)
RETURNS DATETIME
/* Retourne la date du dernier jour du mois sans gestion de l'heure.
Exemples d'utilisation (tests de validation) :
Select dbo.GetLastDayOfMonth(Cast('01/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
Select dbo.GetLastDayOfMonth(Cast('10/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
Select dbo.GetLastDayOfMonth(Cast('28/02/2007 12:20:49.250' As DateTime))>>2007-02-28 12:20:49.250
*/
BEGIN
SET @Dte=DATEADD(MONTH, 1, @Dte)
RETURN DATEADD(DAY, -DAY(@Dte), @Dte)
END
Conclusion
Select Cast(0 As DateTime) retourne 1900-01-01 00:00:00.000 Select DATEADD(DAY, 1-DAY(@Dte), @Dte) retourne le premier jour du mois
Historique
- 21 mars 2007 15:37:19 :
- Err. manip. (tjs trop pressé)
- 03 avril 2007 13:41:20 :
- Correction
- 05 avril 2007 10:09:42 :
- Explication complémentaires
- 10 avril 2007 10:54:21 :
- Simplification : « DATEADD(DAY, -DAY(@dte), DATEADD(MONTH, 1, @dte)) » est l'équivalent de « DATEADD(DAY, -1, DATEADD(MONTH, 1, DATEADD(DAY, 1-DAY(@Dte), @Dte))) ». Par contre, il importe de ne pas modifier l'ordre des opérations. Il faut d'abord ajouter un mois puis soustraire le nombre de jours.
- 10 avril 2007 12:49:38 :
- Correction de la casse dans l'éventualité d'une prise en compte.
- 10 avril 2007 13:36:00 :
- Mea culpa... la simplification n'est pas valide pour la borne supérieure (dernier jour du mois passé en paramètre).
- 10 avril 2007 13:42:30 :
- Ponctuation
- 11 mai 2007 09:01:57 :
- Ajout de l'algo. simplifié : GetLastDay (dernier jour du mois sans gestion de l'heure).
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
le dernier jours d'un mois [ par g_fuck ]
salut !!!je sais pas si je devrais pauser ma question ici .... J'aimerais savoir si il existe une fonction pour trouver le dernier jours d'un mois .
Mise à jour des dates de durée [ par jg_444 ]
Bonjour,J'ai une base de donnée Sybase pour garder trace de mes formations et compétences.Lorsque je fais une mise à jour de la durée d'une compétence
Problème de mise à jour access [ par fzf ]
Bonjour,J'ai effectué une mise à jour mais lorsque j'exécute celle ci le message "Erreur de syntaxe (opérateur absent) dans l'expression "COUNT(Sélect
Pb sur jointure dans update dans access 2003 [ par lecourty ]
Boujour,J'ai deux tables TABLE1 et TABLE2numero, maxi N1, N2, N31 0 19 7 42 0
Lociciel develloper en C++ et incrementation de base MYSQL [ par davidb1967 ]
Bonjour,A partir d'un logiciel que j'ai fait developper (traitement et mise en ligne de photo).Qui pourrais me dire quel sont les differente methode d
probleme mis à jour [ par fetsa054 ]
bonjour à tous, je développe une application vb.net sous vs2008 qui gère une base de données Access,dans le programme je fais une requete UPDATE qui
table dans base de donnée avec mise à jour de colonne [ par lsamsoumal ]
Bonjour tout le monde. dans une base de données mysql je veux créer une table presence qui contient 3 colonnes: utilisateur,date/heure et evenement.
Requete SQL - 3 mois glissants [ par bbertt ]
Avant toutes choses, Bonjour a tousJe tiens à vous remercier car le forum m'a permis de répondre à une grande quantité de questions durant mon stage.C
mise à jour de table [ par belgariel ]
Bonjour, Je travaille actuellement sur sql serveur 2000 et je dois mettre à jour une base de donnée en ajoutant des champs à une table. Le problème es
Probleme Replication de fusion Mise a jour table [ par j2bond2 ]
Bonjourj'ai un serveur distant sous SQL SERVER EXPRESS et un serveur local sous SQL SERVER 2005 et je souhaite mettre a jour une table sur le site dis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
BESOIN D'UN BIBESOIN D'UN BI par michimichid
Cliquez pour lire la suite par michimichid
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|