Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 12h25   #1
Invité régulier
 
Elise
Étudiant
Inscription : mai 2008
Messages : 29
Détails du profil
Informations personnelles :
Nom : Elise

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 29
Points : 8
Points : 8
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
Lize50 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/12/2010, 13h06   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Aller c'est bien parce que ce sont les fetes de fin d'annee

Un debut de solution

Code :
SELECT 65 / 60 AS minutes, 65 % 60 AS secondes
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 14h46   #3
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Pour compléter l'idée de mikedavem

Code :
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
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 15h36   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Pourquoi faire simple quand on peut faire compliqué ?
Code :
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 :
1
2
SELECT RIGHT (( 65 / 60 ) + 100 , 2) + ':' +
       RIGHT (( 65 % 60 ) + 100 , 2) AS [mm:ss]
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 15h48   #5
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
@Waldar
Oui c'est bien plus simple ta proposition

Et je me demande si la fonction RIGHT est normalisée
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 16h04   #6
Invité régulier
 
Elise
Étudiant
Inscription : mai 2008
Messages : 29
Détails du profil
Informations personnelles :
Nom : Elise

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 29
Points : 8
Points : 8
Merci beaucoup Waldar, ta solution marche du tonnerre!!! Merci pour votre aide, et joyeux Noël à tous!
Lize50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h41.


 
 
 
 
Partenaires

Hébergement Web