Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
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 25/02/2011, 10h58   #1
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 68
Points : 27
Points : 27
Par défaut Extraction de datetime en Heure Française

Bonjour à tous,

Je suis confronté à un petit souci dans le cadre de mon job : je suis en train de produire du reporting par rapport à un outil de gestion d'incidents (Request Tracker pour ne pas le nommer).

Je m'attaque à la table même des tickets dont voici la structure :
Code :
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
29
30
31
CREATE TABLE `Tickets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `EffectiveId` int(11) NOT NULL DEFAULT '0',
  `Queue` int(11) NOT NULL DEFAULT '0',
  `Type` varchar(16) DEFAULT NULL,
  `IssueStatement` int(11) NOT NULL DEFAULT '0',
  `Resolution` int(11) NOT NULL DEFAULT '0',
  `Owner` int(11) NOT NULL DEFAULT '0',
  `Subject` varchar(200) DEFAULT '[no subject]',
  `InitialPriority` int(11) NOT NULL DEFAULT '0',
  `FinalPriority` int(11) NOT NULL DEFAULT '0',
  `Priority` int(11) NOT NULL DEFAULT '0',
  `TimeEstimated` int(11) NOT NULL DEFAULT '0',
  `TimeWorked` int(11) NOT NULL DEFAULT '0',
  `Status` varchar(10) DEFAULT NULL,
  `TimeLeft` int(11) NOT NULL DEFAULT '0',
  `Told` datetime DEFAULT NULL,
  `Starts` datetime DEFAULT NULL,
  `Started` datetime DEFAULT NULL,
  `Due` datetime DEFAULT NULL,
  `Resolved` datetime DEFAULT NULL,
  `LastUpdatedBy` int(11) NOT NULL DEFAULT '0',
  `LastUpdated` datetime DEFAULT NULL,
  `Creator` int(11) NOT NULL DEFAULT '0',
  `Created` datetime DEFAULT NULL,
  `Disabled` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`id`),
  KEY `Tickets1` (`Queue`,`Status`),
  KEY `Tickets2` (`Owner`),
  KEY `Tickets6` (`EffectiveId`,`Type`)
) TYPE=InnoDB;
Mon souci est au niveau des champs Created, Started et Resolved. Les dates ont été insérées dans ces champs en heure GMT et je veux les récupérer en heure française.

J'ai bien évidemment pensé à utiliser les fonctions addtime afin de rajouter 2h à toutes les heures, sauf qu'à Greenwich, ils ne fonctionnent pas avec le changement d'heure, contrairement à nous !

Ma base tourne sur une Red Hat 5 dont la Timezone est défini à Europe/Paris. La base Mysql est configuré pour utiliser les TimeZone du système. Cependant, à l'extraction, je les récupère en heure GMT (bien évidemment, dans notre appli, nous avons le tout en heure française).

L'un d'entre vous aurait-il une idée brillante afin de faire quelque chose ? Je pense pouvoir trouver une solution à l'aide d'un script shell mais si l'extraction pouvait être directement faire en heure française, ça m'éviterait quelques heures de scripting et, surtout, à l'avenir m'éviterait de jouer avec mon script pour le prochain basculement d'heure le mois prochain !

Merci de votre aide,

M.
Matalobos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 13h01   #2
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
Bonjour,

Si le system, la base et l'application sont en timezone Europe/Paris, il y a peu de raisons pour que les dates soient stockées sur un autre timezone.

L'application est-elle de type client serveur ?
Si oui, existe-t-il des clients dans un autre timezone que Europe/France ?
Si oui, alors c'est à la partie serveur de l'application de convertir les dates en timezone Europe/France reçues des clients avant persistence.
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 11h18   #3
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 68
Points : 27
Points : 27
Salut Nudger,

Merci de ta réponse. L'application est un "simple" portail PHP. Je pense cependant que le PHP se charge de faire la translation en Heure FR.

J'ai finalement opté pour un script un peu bourrin mais efficace pour traiter les données.

D'ailleurs, pour alimenter ce script, j'ai besoin de faire un dump d'une simple et unique table mais j'aimerai l'avoir au format Nom_de_la_table.sql et Nom_de_la_table.txt. J'ai trouvé comment dumper toutes les tables dans ce format mais l'une d'entre elles fait 4,4g sur un total de 4,5G et m'est totalement inutile... Si quelqu'un à la solution, ce serait génial, sinon, bah, je chercherai
Matalobos 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 16h54.


 
 
 
 
Partenaires

Hébergement Web