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 :

Conversion int vers date


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut Conversion int vers date
    Bonjour,
    Tout d'abord, bonnes fêtes de fin d'années à vous tous.

    Je suppose que cette question a déjà été posée, mais je ne trouve aucune réponse à mon cas, et je ne suis pas trop calée en SQL... Je souhaiterais convertir des entiers, qui correspondent au compte du nombre de secondes d'activité d'un véhicule, en format mm:ss. J'ai bien essayé avec convert ou cast, mais la conversion explicite d'un int en date semble interdite.
    Pour faire simple, comment passer de 65 (int) à 01:05 (mm:ss) ???

    Merci d'avance.

    Elise

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Aller c'est bien parce que ce sont les fetes de fin d'annee

    Un debut de solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 65 / 60 AS minutes, 65 % 60 AS secondes
    ++

  3. #3
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Pour compléter l'idée de mikedavem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE @ent int
    SET @ent = 65
    SELECT CASE 
    WHEN (@ent / 60) < 10 THEN '0'+ CAST(@ent / 60 as varchar) ELSE CAST(@ent / 60 as varchar) 
    END +':'+
    CASE 
    WHEN (@ent % 60) < 10 THEN '0'+ CAST(65 % 60 as varchar)
    ELSE CAST(@ent % 60 as varchar)
    END 'mm:ss'
    Etienne ZINZINDOHOUE
    Billets-Articles

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT right('0' + cast(65 / 60 as varchar), 2) + ':' +
           right('0' + cast(65 % 60 as varchar), 2) AS [mm:ss]
    Ou plus court mais avec une conversion implicite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT right (( 65 / 60 ) + 100 , 2) + ':' +
           right (( 65 % 60 ) + 100 , 2) AS [mm:ss]

  5. #5
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    @Waldar
    Oui c'est bien plus simple ta proposition

    Et je me demande si la fonction RIGHT est normalisée
    Etienne ZINZINDOHOUE
    Billets-Articles

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    Merci beaucoup Waldar, ta solution marche du tonnerre!!! Merci pour votre aide, et joyeux Noël à tous!

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

Discussions similaires

  1. Conversion timestamp vers date
    Par ldiaz dans le forum PL/SQL
    Réponses: 4
    Dernier message: 27/05/2011, 12h01
  2. Conversion int vers Float
    Par roro8 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 08/02/2010, 11h38
  3. Conversion epoch vers date humaine
    Par turbo_chess dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 02/02/2010, 15h53
  4. [FORMS] conversion heure vers date
    Par ctanain dans le forum Forms
    Réponses: 2
    Dernier message: 16/09/2009, 15h53
  5. Conversion timestamp vers date avec oracle 9.2
    Par gaboo_bl dans le forum Oracle
    Réponses: 5
    Dernier message: 27/11/2006, 14h10

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