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

Langage SQL Discussion :

Vues SQL avec champs vides


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Vues SQL avec champs vides
    Bonjour, j'ai 2 tables en SQL 2008 et plus, qui ont un champ potentiellement ; tables A(a1, a2, a3) et B (b1,b2, b3) avec a1 = b1

    je fais une vue avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a1, a2, a3, b1, b2 b3 from A INNER JOIN B ON a1=b1
    xa1, xa2, xa3, xb1, xb2, xb3
    ya1, ya2, ya3, yb1, yb2, yb3
    za1, za2, za3, zb1, zb2, zb3
    jusque là ça va...
    j'obtiens un tableau où les champs sont remplis
    or je voudrais constituer un tableau dans les cas où b1,b2, b3 n'existent pas :
    du genre :
    xa1, xa2, xa3, NULL, NULL, NULL
    ya1, ya2, ya3, NULL, NULL, NULL
    za1, za2, za3, zb1, zb2, zb3

    P.S NULL ou autre chose
    Est-ce possible et si oui comment je peux écrire ma vue ?
    J'ai essayé avec les LEFT, RIGHT JOIN, UNION etc mais je sèche...


    Par avance merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 721
    Points : 11 346
    Points
    11 346
    Par défaut
    Bonjour,
    A part si j'ai mal compris la demande, il faut bien utiliser une jointure externe.
    Par contre je pense qu'il y a une erreur dans "l'énoncé":
    Citation Envoyé par eamrf Voir le message
    Bonjour, j'ai 2 tables en SQL 2008 et plus, qui ont un champ potentiellement ; tables A(a1, a2, a3) et B (b1,b2, b3) avec a1 = a2
    Ce ne serait pas plutôt a1 = b1 ? Et qu'entends-tu par "qui ont un champ potentiellement" ? Potentiellement quoi ?

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    oui c'est bien a1=b1

    potentiellement car il n'existe peut etre pas de lignes avec a1=b1

  4. #4
    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 070
    Points
    13 070
    Par défaut
    bonjour

    alors c'est bien un LEFT JOIN qu'il vous faut

    Attention, il ne faut pas mettre de condition sur la table de gauche dans le WHERE dans ce cas...

    comment avez-vous écrit votre requête avec le LEFT JOIN et qu'est-ce qui n'allait pas dans le résultat ?

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    4 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 4 058
    Points : 7 279
    Points
    7 279
    Billets dans le blog
    1
    Par défaut
    Oui, donc tu dois faire ton choix entre LEFT OUTER JOIN, RIGHT OUTER JOIN et FULL OUTER JOIN
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut A MARCHE PAS!
    J'essaie les LEFT et RIGHT OUTER JOIN mais ça veut pas
    En fait, j'ai plusieurs tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A INNER JOIN B ON A.GUID_CHANNEL = B.GUID_CHANNEL INNER JOIN C ON A.GUID_LOG = C.GUID_LOG INNER JOIN D ON A.GUID_CHANNEL = D.GUID_CHANNEL AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8)

    - A est une table où je peux avoir d'enregistrements avec la clé principale GUID_LOG et les champs GUID_CHANNEL, DATE_BEGIN notamment
    - B a toujours un enregistrement avec la clé GUID_CHANNEL
    - C est un table dépendante de A avec la clé GUID_RUN et la clé GUID_LOG
    - D a toujours un enregistrement avec les champs GUID_CHANNEL, TIME_BEGIN

    est-ce clair?

    ainsi, je voudrais voir une vue avec :
    A.a1 - B.b1 - C.c1- D.d1 où b1 et d1 existe toujours
    exemple:
    NULL - b1 - NULL- d1

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 721
    Points : 11 346
    Points
    11 346
    Par défaut
    Alors, avec les balises la requête donne ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select *
    from A 
    INNER JOIN B ON A.GUID_CHANNEL = B.GUID_CHANNEL 
    INNER JOIN C ON A.GUID_LOG = C.GUID_LOG 
    INNER JOIN D ON A.GUID_CHANNEL = D.GUID_CHANNEL AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8)
    Je ne vois pas de jointure externe…
    Comme A peut être null, et pas B, je partirai de B:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM B
    LEFT OUTER JOIN A ON A.GUID_CHANNEL = B.GUID_CHANNEL
    Maintenant ajoutons C. C peut ne pas être présent, donc il faut aussi une jointure externe:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT *
    FROM B
    LEFT OUTER JOIN A ON A.GUID_CHANNEL = B.GUID_CHANNEL 
    LEFT OUTER JOIN C ON A.GUID_LOG = C.GUID_LOG
    Il ne reste plus qu'à ajouter D. Visiblement D est toujours présent, donc là il faut une jointure interne:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM B
    LEFT OUTER JOIN A ON A.GUID_CHANNEL = B.GUID_CHANNEL 
    LEFT OUTER JOIN C ON A.GUID_LOG = C.GUID_LOG 
    INNER JOIN D ON A.GUID_CHANNEL = D.GUID_CHANNEL AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8)
    Mais là je vois un gros problème. La jointure se fait entre D et A. Si a n'a pas été trouvé (comme dans ton exemple), d'où vient D ?

    Tatayo.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Merci je teste ça !

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    8 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 8 015
    Points : 28 179
    Points
    28 179
    Billets dans le blog
    2
    Par défaut
    bonjour,

    C'est un peu confus, mais
    - il faut utiliser des jointures inner si vous voulez ne retenir que les cas où, pour les critères de jointure (ON), il y a correspondance dans les deux tables jointes
    - il faut utiliser des jointures left ou right outer si la présence dans l'une des deux tables est facultative

    Par ailleurs, pour la jointure, évitez les fonctions de colonne telles que
    AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8).
    Car ce type de fonction compromet l'usage des index.
    Une conversion de type n'est nécessaire que si celui-ci est différent entre les deux tables.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    ça le fait pas encore ....
    mais je sens qu'on se rapproche.... attaquer le select par un autre de table

    La table D a le champ GUID_CHANNEL toujours rempli alors que la table A peut ne pas avoir d'enregistrement avec la clé principale GUID_LOG et les champs GUID_RUN et GUID_CHANNEL ....

    -------------------------
    Tables avec des données toujours présentes :
    B-1* GUID_CHANNEL (canal de rattachement où sont rattachés des GUID_LOG générés)
    D-1* GUID_CHANNEL (canal de rattachement servant à générer les GUID_LOG)
    ----------------------------------
    Tables avec ou pas des données :

    Table mère (1 ligne "contenant")
    A - 1* GUID_LOG
    - 2 GUID_CHANNEL

    Table fille (x lignes "contenu")
    C -1* GUID_RUN
    - 2 GUID_LOG

  11. #11
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    4 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 4 058
    Points : 7 279
    Points
    7 279
    Billets dans le blog
    1
    Par défaut
    Perso, pour la lisibilité, je me démerde généralement pour avoir les INNER JOIN en premier et les OUTER join ensuite : on pose les bases simples en premier avant de commencer à sculpter les gargouilles de l'édifice.
    Et comme l'a fait Tatayo, quand on se retrouve avec un potentiel RIGHT OUTER JOIN, il est préférable d'inverser l'ordre des table afin d'avoir un LEFT OUTER JOIN : c'est plus lisible et demande moins de gymnastique mentale pour comprendre la requête.

    Enfin, attention à la remarque (justifiée) d'escartefigue.
    En effet, autant faire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8)
    Empêche l'utilisation d'index (en plus de faire perdre du temps inutilement en conversions inutiles)

    Autant :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND D.TIME_BEGIN = A.DATE_BEGIN
    Ne veut pas dire la même chose !

    Si TIME_BEGIN et DATE_BEGIN sont de type datetime (contenant la date ET l'heure) alors la conversion en varchar avec le code "8" retourne l'heure uniquement. Donc si les deux colonnes sont à la même heure mais pas la même date, ça ne retournera pas la même chose. Idem si les heures contiennent des millisecondes différentes.

    En revanche, si on a des millisecondes identiques, je te conseille de caster tes dates vers le type time : même si ça compromait toujours l'utilisation d'un index, la conversion est plus naturelle (et accessoirement, si on lit "time" on sait qu'on compare les heures et non la date, ce qui est bien moins évidement avec l'utilisation du format de conversion "8" qui n'est pas du tout parlant)
    On ne jouit bien que de ce qu’on partage.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    bonjour,

    C'est un peu confus, mais
    - il faut utiliser des jointures inner si vous voulez ne retenir que les cas où, pour les critères de jointure (ON), il y a correspondance dans les deux tables jointes
    - il faut utiliser des jointures left ou right outer si la présence dans l'une des deux tables est facultative

    Par ailleurs, pour la jointure, évitez les fonctions de colonne telles que
    AND CONVERT(varchar, D.TIME_BEGIN, 8) = CONVERT(varchar,A.DATE_BEGIN, 8).
    Car ce type de fonction compromet l'usage des index.
    Une conversion de type n'est nécessaire que si celui-ci est différent entre les deux tables.
    En effet, seuls hh:mn:ss m'interessent à comparer et leurs yyyy-mm-dd sont différents.

  13. #13
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    8 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 8 015
    Points : 28 179
    Points
    28 179
    Billets dans le blog
    2
    Par défaut
    En ce cas, tenez compte de la remarque de StringBuilder

  14. #14
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    En ce cas, tenez compte de la remarque de StringBuilder
    D'après ce que je comprends et mon cas où seules le Time peut être commun et la Date ne l'est certainement pas, je suis obligé de passer par un CONVERT

    Une conversion de type n'est nécessaire que si celui-ci est différent entre les deux tables
    Or les dates sont différentes....

  15. #15
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    20 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 20 985
    Points : 49 809
    Points
    49 809
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par eamrf Voir le message
    D'après ce que je comprends et mon cas où seules le Time peut être commun et la Date ne l'est certainement pas, je suis obligé de passer par un CONVERT

    Or les dates sont différentes....
    On parle pas de dates différentes ! On parle de types de données différents. Est-ce que vos types de données des colonnes sont différents oui ou non ?

    Il est évident que si vous vous étiez conformé aux règles de postage de ce forum en nous fournissant la description sous forme DDL de vos tables, cela aurait été plus simple et beaucoup plus rapide !

    A lire : https://www.developpez.net/forums/a6...gage-sql-lire/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  16. #16
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    4 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 4 058
    Points : 7 279
    Points
    7 279
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par eamrf Voir le message
    je suis obligé de passer par un CONVERT
    Pas forcément, CAST() remplace avantageusement CONVERT() dans bien des cas.

    Pour convertir un datetime en time notamment.
    On ne jouit bien que de ce qu’on partage.

  17. #17
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Table "A":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE [SYSADM].[T_FED_LOG](
    	[GUID_LOG] [uniqueidentifier] NOT NULL,
    	[GUID_CHANNEL] [uniqueidentifier] NULL)
    ) ON [PRIMARY]
    TABLE "B":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE [SYSADM].[T_FED_CHANNEL](
    	[GUID_CHANNEL] [uniqueidentifier] NOT NULL,
    	[NAME_CHANNEL] [nvarchar](128) NOT NULL,
    	[ID_STATION] [int] NULL,
    	[ID_BROADCAST] [int] NULL,
     CONSTRAINT [PK_T_FED_CHANNEL] PRIMARY KEY CLUSTERED 
    (
    	[GUID_CHANNEL] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    TABLE "C":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE [SYSADM].[T_FED_RUN](
    	[GUID_RUN] [uniqueidentifier] NOT NULL,
    	[GUID_SCREEN] [uniqueidentifier] NULL,
    	[GUID_LOG] [uniqueidentifier] NULL,
    	[GUID_ITEM] [uniqueidentifier] NULL,
    	[POSITION] [int] NULL,
    	[RUN_NAME] [nvarchar](255) NULL
     
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    TABLE "D":
    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
    CREATE TABLE [SYSADM].[T_FED_GRIDEMISSION](
    	[GUID_GRIDEMISSION] [uniqueidentifier] NOT NULL,
    	[GUID_LOG] [uniqueidentifier] NULL,
    	[GUID_CHANNEL] [uniqueidentifier] NULL,
    	[NAME] [nvarchar](128) NULL,
    	[DATE_BEGIN] [datetime] NULL,
    	[DATE_END] [datetime] NULL,
    	[TIME_BEGIN] [datetime] NULL,
    	[TIME_END] [datetime] NULL,
    	[MONDAY] [int] NULL,
    	[TUESDAY] [int] NULL,
    	[WEDNESDAY] [int] NULL,
    	[THURSDAY] [int] NULL,
    	[FRIDAY] [int] NULL,
    	[SATURDAY] [int] NULL,
    	[SUNDAY] [int] NULL,
    	[ID_PLAN] [int] NULL
    ) ON [PRIMARY]
    Je suis preneur de la syntaxe pour transformer un datetime en time via CAST()

    Merci !

  18. #18
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 721
    Points : 11 346
    Points
    11 346
    Par défaut
    Après une petite recherche (cast datetime time), pour SqlServer:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select convert(time,GETDATE())
     
    select cast(getdate() as time)
    Tatayo

  19. #19
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Après une petite recherche (cast datetime time), pour SqlServer:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select convert(time,GETDATE())
     
    select cast(getdate() as time)
    Tatayo
    Merci beaucoup !

Discussions similaires

  1. [ODBC] Valider formulaire avec champs vides
    Par dorot dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 12/07/2006, 18h15
  2. Pb sélection avec Champ vide
    Par Luffy Duck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2005, 13h11
  3. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 12h12
  4. [stringtokenizer] probleme avec champs vides
    Par gege2mars dans le forum Langage
    Réponses: 9
    Dernier message: 30/06/2004, 09h25
  5. Pb de tri avec champs vide
    Par nesbla dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2004, 18h42

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