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 :

[Transact SQL] concaténer jour+heure


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut [Transact SQL] concaténer jour+heure
    Bonjour,

    Comment concaténer 1 jour et une heure pour obtenir un DateTime Jour+heure?

    Exemple :

    set @jour="6 mai 2004"
    set @heure="18:00:00"

    DateTime NouveauDateTime
    -->NouveauDateTime= 6 mai 2004 18:00:00

    Merci...

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    set @jour="6 mai 2004"
    set @heure="18:00:00"

    Il vous suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @Jour + ' ' + @Heure
    Et c'est vraiment tout.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Ok, merci...

    Et pour ne récupérer que je jour dans une date qui est de la forme jour+heure?

    faut il convertir cette date+heure en chaine et récupérer une sous chaine (substring)--> les 10 premiers caractères...

    Merci encore pour votre aide

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT(VARCHAR(10),GETDATE(),111)
    Par exemple !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Merci beaucoup...

    En application, j'ai fait ceci :

    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
     
    CREATE FUNCTION dbo.F_JOUR_HEURE (@jour DateTime,@heure DateTime)  
    RETURNS DateTime AS  
    BEGIN
     
    DECLARE @resultat DateTime
     
    ---dd/mm/yyyy
    set @jour=CONVERT(varchar(10),@jour,103)
     
    ---hh:mm:ss
    set @heure=CONVERT(varchar(10),@jour,108)
     
     
    set @resultat=CONVERT(DateTime,@jour+' '+@heure,113)
     
     
     
     
    return @resultat
     
    END
    Dans la base : le DateTime @resultat est au format dd/mm/yyyy et non dd/mm/yyyy hh:mm:ss

    Avez vous une idée du problème?

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Je vais voir ca demain.
    Merci et au revoir.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    J'ai oublié de te sugerer d'utiliser la fonction

    Dans ton code.

    Merci.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Merci beaucoup.

    Voici une fonction "propre" :

    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
     
    CREATE FUNCTION dbo.F_JOUR_HEURE (@jour DateTime,@heure DateTime)  
    RETURNS DateTime AS
     
    ---fonction qui retourne un DateTime composé du jour du premier paramètre et de l'heure du second
     
    BEGIN
     
    DECLARE @resultat DateTime
    DECLARE @chaine_jour varchar(10)
    DECLARE @chaine_heure varchar(8)
    DECLARE @chaine varchar(19)
     
     
    ---dd/mm/yyyy
    set @chaine_jour=CONVERT(varchar(10),@jour,103)
     
    ---hh:mm:ss
    set @chaine_heure=CONVERT(varchar(8),@heure,108)
     
    set @chaine=@chaine_jour+' '+@chaine_heure
     
    set @resultat=CONVERT(DateTime,@chaine)
     
     
    return @resultat
     
    END

  9. #9
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    As-tu essayé en activant le DATAFORMAT ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    C'est parfait.
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Transact SQL] GETDATE() sans heure
    Par jowsuket dans le forum Langage SQL
    Réponses: 9
    Dernier message: 18/11/2015, 13h04
  2. [Transact SQL] Trouver le premier jour du mois
    Par jowsuket dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/04/2013, 12h54
  3. Réponses: 7
    Dernier message: 15/02/2008, 12h36
  4. Transact-SQL et mise à jour de TABLE
    Par samworld dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/09/2007, 13h20
  5. Transact SQL et date jour
    Par nutix2003 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/02/2007, 18h23

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