IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

afficher une date convertie [2012]


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut afficher une date convertie
    Bonjour j'ai réussi a convertir la date pour calculer la différence entre le début et la fin de la journée mais il reste ; comment afficher la date converti
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
              AVG(c.value) as consomation
     
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b On u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f On b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r On f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e On r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep On e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p On ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c On p.PropertiesInstanceID=c.PropertiesInstanceID
    left JOIN        dbo.EquipmentDevices ed On e.EquipmentID = ed.EquipmentID
    left JOIN        dbo.UserDevices ud On ud.UserDeviceID = ed.UserDeviceID
    left JOIN        dbo.Devices d On ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 or e.ZwaveType=1)
    AND c.Unit=2
    AND  convert (varchar(MAX) , dateadd(d, -180, getdate() ) , 103 )=convert (varchar(MAX) , c.date , 103) 
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     
                d.DeviceID,
                e.EquipmentID

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,
    Vous voulez convertir la Date en quoi? Le format , a pour valeur unitaire le jour. et entre le début et la fin de la journée, vous ne trouverez pas plus de 0. Voulez convertir en Mois, Heure, en minute ou en seconde....? Soyez explicite.

    Cordialement.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Alexandre le Grand Voir le message
    Bonjour,
    Vous voulez convertir la Date en quoi? Le format , a pour valeur unitaire le jour. et entre le début et la fin de la journée, vous ne trouverez pas plus de 0. Voulez convertir en Mois, Heure, en minute ou en seconde....? Soyez explicite.

    Cordialement.
    bon pour le format de date 'dd Mmm yyyy hh:mm:ss:mmm' et j'ai réussi a le convertir mais le problème dans l'affichage je veux l'afficher la date convertie

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Citation Envoyé par Jaafar_scorpion Voir le message
    bon pour le format de date 'dd Mmm yyyy hh:mm:ss:mmm' et j'ai réussi a le convertir mais le problème dans l'affichage je veux l'afficher la date convertie
    Vous parlez de date convertie...en quel format? Le format "jj mois aaaa hh:mm:ss:mmm", a pour code 13 ou 113 et non 103. Le format 103 est sous la forme:jj/mm/aa.

    Lisez cet tuto en fichier joint, il vous aidera dans le choix des format de Dates.
    Images attachées Images attachées

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Alexandre le Grand Voir le message
    Vous parlez de date convertie...en quel format? Le format "jj mois aaaa hh:mm:ss:mmm", a pour code 13 ou 113 et non 103. Le format 103 est sous la forme:jj/mm/aa.

    Lisez cet tuto en fichier joint, il vous aidera dans le choix des format de Dates.
    merci pour le document mais juste j'ai besoin d'afficher la date convertie et pour le 13 et 113 ça ne marche pas
    pour le format voila "2013-08-07 13:44:35.240"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND convert (varchar(MAX) , dateadd(d, -180, getdate() ) , 13 )=convert (varchar(MAX) , c.date , 13)

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Voici le bon format pour additionner les Dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select DATEADD(minute, -180, (select getdate()))
    , pour un rendu en minute. Si c'était en second, on ferait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select DATEADD(second, -180, (select getdate()))
    . De façon générale: Select DATEADD( uniteDeMesure, nombre_A_Ajouté, LaDate);
    Et votre format est incorrect. Remplacez le "d" par "day" au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND convert (varchar(MAX) , dateadd(d, -180, getdate() ) , 103 )=convert (varchar(MAX) , c.date , 103)
    .

    Avec 180, je suppose que vous voulez retirer 180 minutes. Et je vous propose de remplacez, Varchar(max) par varchar tout simplement. Donc, vous aurez ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select CONVERT(varchar,(select DATEADD(minute,-180,(select GETDATE()))),13)
    .
    Ce qui devrait afficher la date actuelle moins 3 heures ou 180 minutes. A mon niveau ça donne :27 mai 2014 09:23:54:160.

    Cordialement.

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    merci mais pour -180 c'est 180 jours

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    si j'ai bien compris voici ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
              AVG(c.value) as consomation,
    		  CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),13) as date 
     
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b On u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f On b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r On f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e On r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep On e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p On ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c On p.PropertiesInstanceID=c.PropertiesInstanceID
    left JOIN        dbo.EquipmentDevices ed On e.EquipmentID = ed.EquipmentID
    left JOIN        dbo.UserDevices ud On ud.UserDeviceID = ed.UserDeviceID
    left JOIN        dbo.Devices d On ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 or e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     
                d.DeviceID,
                e.EquipmentID

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select  dateadd(SECOND,DATEDIFF(SECOND,cast('20140527' as datetime),getdate()),'')

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Donpi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select  dateadd(SECOND,DATEDIFF(SECOND,cast('20140527' as datetime),getdate()),'')
    désole mais j'ai pas compris je suis en train de faire jours -1

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Sérieux, un petit effort, tout est là.

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Citation Envoyé par Jaafar_scorpion Voir le message
    merci mais pour -180 c'est 180 jours
    . Ok, si j'ai bien compris, vous voulez retirer 180 jours de la date du jour. Dans ce cas, votre code sera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
              AVG(c.value) AS consomation,
    		  CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),13) AS [date] 
     
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     
                d.DeviceID,
                e.EquipmentID
    Remarquez les crochets [] autour de "date" dans la partie modifiée. Ceci vous aidera à retirer les 180 jours comme vous le vouliez.

    Cordialement.

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    oui merci déjà j'ai changé ss a la place de day en tout cas merci beaucoup pour votre aide

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Citation Envoyé par Jaafar_scorpion Voir le message
    merci mais pour -180 c'est 180 jours
    . Ok, si j'ai bien compris, vous voulez retirer 180 jours de la date du jour. Dans ce cas, votre code sera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
              AVG(c.value) AS consomation,
    		  CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),13) AS [date] 
     
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     
                d.DeviceID,
                e.EquipmentID
    Remarquez les crochets [] autour de "date" dans la partie modifiée. Date est un mot clé, et les crochets évitent les bugs inutiles. Ceci vous aidera à retirer les 180 jours comme vous le vouliez.

    Je n'ai pas la Base pour exécuter la requête, donc je n'ai pu que exécuter ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),13) AS [date]
    . Ce qui donne: "28 nov 2013 15:34:21:743".

    Mais ceci, pour avoir la date exacte du jour -180 jours, il faudrait utiliser le format 103.

    Votre code sera alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
              AVG(c.value) AS consomation,
    		  CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),103) AS [date] 
     
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     
                d.DeviceID,
                e.EquipmentID
    Avec 103 comme format, la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT(varchar,(SELECT DATEADD(DAY,-180,(SELECT GETDATE()))),103) AS [date]
    , donne ceci :. Ce qui veut dire qu'il y a 180 jours la date était "28/11/2013".

    Seulement 13 est modifié en 103.
    Cordialement.

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    juste une dernière question ; je dois calculer l’énergie a partir d'une date donc la formule sera la date max- date min a jour -1 (00.00.00-23.59.59)
    j'ai essayé cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
            c.value  AS energie ,
    		 AS [date] ,
      Datediff (ss, max(c.date), min(c.date) )
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     c.value,
                d.DeviceID,
                e.EquipmentID

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Votre requête sera comme ci-après, avec ss, il est supposé que vous calculer en second:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
            c.value  AS energie ,
    		 AS [date] ,
      Datediff (second,(SELECT (max(c.date)),(SELECT(min(c.date) ))
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     c.value,
                d.DeviceID,
                e.EquipmentID
    Noter que le SELECT permet d'afficher.

  17. #17
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    désolé mais ça ne marche pas il y a un problème au niveau cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Datediff (second,(SELECT (max(c.date)),(SELECT(min(c.date) ))

  18. #18
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Citation Envoyé par Jaafar_scorpion Voir le message
    désolé mais ça ne marche pas il y a un problème au niveau cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Datediff (second,(SELECT (max(c.date)),(SELECT(min(c.date) ))
    Bonjour,

    C'est vrai, il y a une erreur sur la Ligne. Il manque le SELECT, juste avant DateDiff.

    Donc le code sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    SELECT      u.UserID,
                b.BuildingID,
                f.Name AS NameFloors,
                r.Name AS Rooms,
                d.DeviceID,
                e.EquipmentID,
            c.value  AS energie ,
    		 AS [date] ,
     (SELECT Datediff (second,(SELECT (max(c.date)),(SELECT(min(c.date) )))
     
    FROM        dbo.Users u
    LEFT JOIN   dbo.Buildings b ON u.UserID=b.UserId
    LEFT JOIN   dbo.Floors f ON b.BuildingID=f.BuildingID
    LEFT JOIN   dbo.Rooms r ON f.FloorID=r.FloorID         
    LEFT JOIN   dbo.Equipments e ON r.RoomID=e.RoomID
    LEFT JOIN   dbo.EquipmentProperties ep ON e.EquipmentID = ep.EquipmentID
    LEFT JOIN   dbo.PropertiesInstances p ON ep.EquipmentPropertiesID = p.EquipmentPropertiesID
    LEFT JOIN   dbo.Consumptions c ON p.PropertiesInstanceID=c.PropertiesInstanceID
    LEFT JOIN        dbo.EquipmentDevices ed ON e.EquipmentID = ed.EquipmentID
    LEFT JOIN        dbo.UserDevices ud ON ud.UserDeviceID = ed.UserDeviceID
    LEFT JOIN        dbo.Devices d ON ud.DeviceID = d.DeviceID
    WHERE       p.ProprietesName =2
    AND         (e.ZwaveType=0 OR e.ZwaveType=1)
    AND c.Unit=2
     
    GROUP BY    u.UserID,
                b.BuildingID,
                f.Name,
                r.Name,  
     c.value,
                d.DeviceID,
                e.EquipmentID
    Cordialement.

  19. #19
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 230
    Points : 24
    Points
    24
    Par défaut
    non l'erreur c'est la fonction datediif requiret 3 arguments

  20. #20
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Non, l'erreur est à la ligne juste au dessus, ou vous avez laissé trainer un alias...

    Supprimez le AS [date] ,.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [PHP 5.0] afficher une date converti avec ISO 8601:2000 basic format
    Par abdeladim7 dans le forum Langage
    Réponses: 0
    Dernier message: 27/01/2012, 12h42
  2. [Dates] Afficher une date en francais
    Par pssinjaune dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2006, 21h24
  3. [MySQL] Afficher une date correctement après une requête
    Par Nerva dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2006, 16h27
  4. afficher une date d'1 monthcalendar d'un datetimepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/07/2005, 10h00
  5. [JTable] Afficher une date dans un tableau / Renderer
    Par isak dans le forum Composants
    Réponses: 3
    Dernier message: 11/07/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo