Bonjour,
Je cherche un moyen d'obtenir le premier jour du mois en transact SQL.
La date du premier jour du mois pour être plus précis![]()
Bonjour,
Je cherche un moyen d'obtenir le premier jour du mois en transact SQL.
La date du premier jour du mois pour être plus précis![]()
je suppose que tu veux dire le jour? lundi/mardi/mercredi etc?
par exemple, mais il faut faire attention a SET DATEFIRST voir l'article http://technet.microsoft.com/fr-fr/l.../ms174420.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 declare @valday int SELECT @valday = DATEPART(dw, getdate()) select case when @valday = 1 then 'Dimanche' when @valday = 2 then 'Lundi' when @valday = 3 then 'Mardi' when @valday = 4 then 'Mercredi' when @valday = 5 then 'Jeudi' when @valday = 6 then 'Vendredi' when @valday = 7 then 'Samedi' end
Merci pour la réponse mais ce n'est pas ce que je recherche.
Je voudrai quelque chose du genre
Où la fonction "Get_premier_jour_du_mois" retournerai la date du 01/04/2008 pour ce mois-ci. Enfin je ne sais pas si une telle fonction existe mais je cherche un moyen propre d'obtenir cette date sans faire un CAST bancale qui ne serai pas compatible avec une date d'une autre culture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DECLARE @Date_premier_jour_du_mois smalldatetime SET @Date_premier_jour_du_mois = Get_premier_jour_du_mois(GETDATE())
La date retournée a une heure fixée à 00:00:00.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE FUNCTION F_DebutDeMois ( @pDate smalldatetime ) RETURNS smalldatetime AS BEGIN DECLARE @dDateDebutDeMois smalldatetime SET @dDateDebutDeMois = CAST(CAST(YEAR(@pDate) as varchar) + RIGHT('0' + CAST(MONTH(@pDate) as varchar), 2) + '01' as smalldatetime) RETURN @dDateDebutDeMois END
Le transtypage vers le smalldatetime utilise le format universel YYYYMMJJ
Un truc du genre
DateAdd(d, -Days(MaDate) + 1, MaDate), ça marche pas ?
Merci beaucoup les gens, ça marche!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE FUNCTION Date_premier_jour_du_mois(@Une_date smalldatetime) RETURNS smallDateTime AS BEGIN RETURN CAST(FLOOR(CAST(DateAdd(d, -Day(@Une_date) + 1, @Une_date) AS FLOAT)) AS smallDateTime) END SELECT dbo.Date_premier_jour_du_mois(GETDATE())
Bonjour,
et on peut manipuler ça comme une date
Code : Sélectionner tout - Visualiser dans une fenêtre à part select Left(convert(varchar(8),GETDATE(),112),6)+'01'
Code : Sélectionner tout - Visualiser dans une fenêtre à part select dateadd(d,1,Left(convert(varchar(8),GETDATE(),112),6)+'01')
Bonjour,
Ou bien sans sortir du domaine de dates :
avec cette méthode, on peut "arrondir" au mois, mais aussi à l'année, au jour, à l'heure, à la minute,...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT DATEADD( MONTH, DATEDIFF( MONTH, 0, GETDATE() ), 0 )
Partager