Convertir une colonne Datetime en période découpée en minute

Ledobs Messages postés 1 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 18 août 2011 - 18 août 2011 à 16:10
cs_saizonou Messages postés 21 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 26 avril 2012 - 26 août 2011 à 10:44
Bonjour à tous, j'ai effectué une recherche sur le forum mais n'ai rien trouvé pour répondre à ma questionnement.

Comme je suis un peu pressé dans le temps pour trouver cette information je m'adresse à vous tous. J'aimerais ajouter un découpage en période de 15min à une db qui contient une colonne DATE (format datetime).

J'ai essayé différents moyens mais je n'arrive pas à ce que je veux. L'objectif est de regouper les transactions par type par période de 15 min par jour en référençant une nouvelle colonne (15min)

Exemple de table désiré:

TRX_IDN | EVT_NMTRX | CLIENT_MAIL |DATE(Frmt Datetime)| Qt | 15min
1234567 | Achat web | roger@y.com | 08-08-18 10:36:15 | 2 | 10:30:00
1234568 | Achat Ebay| ochet@a.com | 08-08-18 10:47:19 | 1 | 10:45:00

J'ai découpé mes date en format Date à l'aide d'un CAST que j'insère dans une colonne Jour. Mais je bloque au découpage en période de 15min.

J'aimerais avoir une colonne comme l'exemple 15min, qui me permettrait de faire mes regroupement au 15 min.

Est-ce que quelqu'un peut m'éclairer svp?

1 réponse

cs_saizonou Messages postés 21 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 26 avril 2012 6
26 août 2011 à 10:44
Salut,

Tu crées une function (fonction scalaire):
CREATE FUNCTION [dbo].[Fn_RecupDecoupe15mn] (@Ma_Date datetime)
RETURNS varchar(8) AS
BEGIN
DECLARE @Heure varchar(2)
DECLARE @Minutes varchar(2)
SET @Heure = datepart(hour,cast(@Ma_Date as datetime))
SET @Minutes = cast(datepart(minute,cast(@Ma_Date as datetime)) - datepart(minute,cast(@Ma_Date as datetime))% 15 as varchar(2))
IF @Minutes='0' SET @Minutes='00'
RETURN(SELECT @Heure + ':' + @Minutes + ':00')
END


Ensuite tu l'utilises dans ta requête :
SELECT [TEST].[dbo].[Fn_RecupDecoupe15mn] ('08-08-18 10:027:19')


le résultat est : 10:15:00
SAIZONOU Landry
0
Rejoignez-nous