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 30/09/2011, 10h48   #1
Invité de passage
 
Homme Grégory
Administrateur systèmes et réseaux
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Grégory
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Associations - ONG

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Problème avec heures supérieures à 24 heures.

Bonjour à tous,
avant de poster j'ai vérifier si la question existait sur le forum et je ne l'ai pas trouvé, donc désolé si c'est un double post.

Bon, voici mon problème:
J'encode des données dans un fichier excel et dans certaines colonne le format est [hh].mm et ces colonnes correspondent à un encodage par rapport à un régime de travail mais aussi à un pourcentage de ce régime, qui peut être aussi supérieur à 24 heures.

Donc sous excel, aucun problème, par contre, dès que j'importe ce tableau, j'ai le même problème qu'avec Access, les heures supérieurs à 24 heures ne s'affichent pas correctement.
Y a t il un format spécifique sachant qu'ils sont mis en "datetime" sous SQL.
Je suis assez novice en SQL, je connais les bases, ce n'est pas mon métier principal, donc si vous pouviez m'aider sur ce problème, celà serait sympa.

Dans le futur je reviendrai souvent vers vous, car SQl Server va prendre de plus en plus de place dans mon métier.

Merci.
Gvinter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h09   #2
Membre du Club
 
Inscription : décembre 2002
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 82
Points : 66
Points : 66
Bonjour,

Je n'ai pas tout compris à ton problème.
Néanmoins j'importe régulièrement des données de fichiers Excel à l'aide d'ETL pour stocker ces informations dans une base SQL.

Personnellement, je récupère toujours les valeurs en varchar et ensuite je fais un traitement de qualité de données (c'est a dire Test des différentes valeurs, nettoyage et CAST quand ce sont des dates par exemple. Pour cela j'ai des fonctions comme ISVALIDDATE...).

En espérant avoir pu t'orienter dans ta recherche.
Glouferu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h59   #3
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Voici ce qui me vient en tête (pas de SQL Server sour la main pour tester).

Tu découpes ton heures Excel sous forme de deux entiers "nbheures" et "nbminutes".
Ensuite, tu fais ce traitement pour récupérer l'heure convertie en datetime :
Code :
1
2
 
dateadd(dateadd(cast(0 AS datetime) /*01/01/1900*/, 'h', nbheures), 'm', nbminutes)
- Vérifier l'initialisation de la date au 01/01/1900, je me souviens plus si un cast à partir de 0 fonctionne (sinon, tu entres toi-même la date en dure)
- Vérifier que le datepart "h" correspond aux heures
- Vérifier que le datepart "m" correspond aux minutes
- Vérifier l'ordre des paramètres de dateadd.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h14   #4
Invité de passage
 
Homme Grégory
Administrateur systèmes et réseaux
Inscription : septembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Grégory
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Associations - ONG

Informations forums :
Inscription : septembre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Merci

pour vos réponse.
Dommage que la gestion du temps ne soit pas géré de base comme avec Excel.
Je teste et vous dis quoi (ben oui, chti d'origine)
Gvinter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 17h53   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Un tableur n'a pas de type de données. Vous pouvez donc rentrer dans n'importe quelle colonne, n'importe quelle information. Par exemple dans une colonne heure vous pouvez saisir "toto"...
Ce n'est pas le cas d'un SGBDR qui est fortement typé et pour lequel un type TIME permet de saisir des heures véritables allant de 0 à 23h59m59s9999999.
Si vous voulez manipuler des "quantités" d'heures, il vous faut par exemple stocker cela sous forme d'entiers ou de réel.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h36.


 
 
 
 
Partenaires

Hébergement Web