|
| Requete SQL avec Windev - Numéro de Semaine |
| Iniciado por JVE, 31,mar. 2020 12:32 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 48 mensajes |
|
| Publicado el 31,marzo 2020 - 12:32 |
Bonjour J'ai essayé plusieurs commande SQL (DATEPART, WEEKOFYEAR) pour obtenir le numéro de semaine d'une date par SQL sans succès. La requête est intégrée dans du code windev. Peut être quelqu'un à déjà trouvé une solution? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 214 mensajes |
|
| Publicado el 31,marzo 2020 - 12:40 |
Bonjour, J'iamgine que tu parles de SQL server? Dans ce cas, tu peux créer une fonction scalaire :
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE FUNCTION [dbo].[SEMAINE_DEPUIS_DATE] (@DATE DATETIME) RETURNS VARCHAR(8) AS
BEGIN
DECLARE @Result AS VARCHAR(8); DECLARE @NUMSEM AS VARCHAR(8);
SET @NUMSEM = DATEPART(WEEK, @DATE)
SET @Result = (CASE @NUMSEM WHEN 53 THEN 1 ELSE @NUMSEM END )
RETURN @Result
END
Et seconde solution pour les semaines europeennes (semaine 53) :
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE function [dbo].[SEMAINE_ISO_DEPUIS_DATE] ( @DATE DATETIME ) returns int AS
begin
declare @WeekOfYear int
SELECT @WeekOfYear = (datediff(dd, CASE WHEN NextYrStart <= @DATE THEN NextYrStart WHEN CurrYrStart <= @DATE THEN CurrYrStart ELSE PriorYrStart END,@DATE)/7)+1 FROM ( SELECT PriorYrStart = dateadd(dd,(datediff(dd,-53690,dateadd(yy,-1,aa.Jan4))/7)*7,-53690), CurrYrStart = dateadd(dd,(datediff(dd,-53690,aa.Jan4)/7)*7,-53690), NextYrStart = dateadd(dd,(datediff(dd,-53690,dateadd(yy,1,aa.Jan4))/7)*7,-53690) FROM ( SELECT Jan4 = dateadd(dd,3,dateadd(yy,datediff(yy,0,@DATE),0)) ) aa ) a
return @WeekOfYear
END GO |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 48 mensajes |
|
| Publicado el 01,abril 2020 - 13:32 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 01,abril 2020 - 15:49 |
Bonjour,
Utilisez wl.NuméroDeSemaine()
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 01,abril 2020 - 17:22 |
Bonjour Personnellement, dans mes base de données j'ajoute des rubriques calculées où je décompose le mois, l'année et le numéro de semaine du champ date dont j'ai besoin. Comme ça les données sont dans mon fichier et mes requêtes simplifiées et plus rapides.
une solution parmi d'autres...
Thierry |
| |
| |
| | | |
|
| | | | |
| | |
|