Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
458 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  convert datetime format to datetime format

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

convert datetime format to datetime format

n°937052
mandracke7​6
Posté le 04-01-2005 à 17:59:30  profilanswer
 

Bonjour,
 
Ma configuration base de donnée est: Sybase 11.9
Je desire transformer un format de datetime yyyymmddhh24miss vers un format yyyymmdd lors d'un insert sur un resultat de select.
 
La solution la plus barbare que j'ai trouver est:
 
CALL_DATE = DATETIME
MY_DATE = DATETIME
 
INSERT (......, MY_DATE, .....) VALUES
SELECT ......,
CONVERT(DATETIME,CONVERT(VARCHAR(12), CALL_DATE, 112),112) MY_DATE, ....
FROM ....
WHERE ....
 
En gros je passe par une convertion de type charactere pour supprimer la partie heures minutes secondes.
 
Si quelqu'un connait une methode plus propre merci de me la communiquer.

mood
Publicité
Posté le 04-01-2005 à 17:59:30  profilanswer
 

n°937259
Arjuna
Aircraft Ident.: F-MBSD
Posté le 04-01-2005 à 21:20:44  profilanswer
 

y'a pas de solution plus propre.
 
si tu veux stocker des bouts de date, c'est plus des dates, donc stocke ça dans des char(8)


Message édité par Arjuna le 04-01-2005 à 21:20:56
n°937487
mandracke7​6
Posté le 05-01-2005 à 09:34:23  profilanswer
 

Arjuna a écrit :

y'a pas de solution plus propre.
 
si tu veux stocker des bouts de date, c'est plus des dates, donc stocke ça dans des char(8)


 
Disons que se qui m'embete le plus c'est surtout cette partie de ma requete:
 
INSERT (...,NBR,.., MY_DATE, .....) VALUES
SELECT ......,COUNT(1) NBR,...,
CONVERT(DATETIME,CONVERT(VARCHAR(12), CALL_DATE, 112),112) MY_DATE, ....
FROM ....
WHERE ....  
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR(12), CALL_DATE, 112),112)

n°937496
Arjuna
Aircraft Ident.: F-MBSD
Posté le 05-01-2005 à 09:45:51  profilanswer
 

C'est quoi ce NBR ?
 
Tu peux détailler un peu plus ce que fait ton truc ?
 
Sinon, dans ton SGBD, y'a pas un type "shortdate" ou "smalldate", un truc comme ça ? Généralement, ça permet de ne stocker que la partie date d'un datetime.

n°937519
mandracke7​6
Posté le 05-01-2005 à 10:33:42  profilanswer
 

Arjuna a écrit :

C'est quoi ce NBR ?
 
Tu peux détailler un peu plus ce que fait ton truc ?
 
Sinon, dans ton SGBD, y'a pas un type "shortdate" ou "smalldate", un truc comme ça ? Généralement, ça permet de ne stocker que la partie date d'un datetime.


 
Disons que ma requête en question permet de faire des stat (un résumer du contenue d'une autre table) sur une journée.
Donc pour être simple:
J'insère dans une table summary, le nombre de données reçues classées par type de donnée et par date de réception (JJ/MM/ANNEE) trouvée dans une table correspondant au trafic du jour.
 
Exemple:
TABLE TRAFIC(
data_date datetime, /* Format YYYY MM DD HH24:MI:SS */
data varchar(x),
data_type varchar(x),
...
)
 
TABLE SUMMARY(
trafic_date datetime, /* Format YYYY MM DD*/
nbr numeric (8,0), /* = count(data) pour la journée en question */
data_type varchar(x),
...
)
 
Donc ma requête serait:
 
INSERT INTO SUMMARY (trafic_date, nbr, data_type) VALUES
SELECT CONVERT(DATETIME,CONVERT(VARCHAR(12), data_date, 112),112) trafic_date, count(data) nbr, data_type
FROM TRAFIC
WHERE data_date >= @date_deb and data_date < @date_end
GROUP BY
CONVERT(DATETIME,CONVERT(VARCHAR(12), data_date, 112),112),
data_type

 
 
Une fois que mon résumer est inséré je supprime le contenu de la table trafic.
A savoir que je suis obliger de garder le type date dans la table summary pour pouvoir faire des recherches dessus après sans utiliser du like si cela était un varchar(8).
 
Merci.

n°937533
Arjuna
Aircraft Ident.: F-MBSD
Posté le 05-01-2005 à 10:58:39  profilanswer
 

Hmmm, à vue de nez, je ne vois pas de solution vraiment miraculeuse.
 
Ta table Traffic est vidée au fur et à mesure. A part alimenter la table Summary, elle sert à autrechose ? Sinon, un bon moyen serait de ne stocker dans cette table que la partie date de ton datetime.
 
Sinon, a nouveau, puisqu'à priori tu vide ta table Traffic au fur et à mesure, pourquoi ne pas faire un update de la table Traffic et mettre à jour la date au format voulu ? Ca permettra de ne pas faire de regroupement sur un calcul.
 
Je ne suis pas certain que ça change grand chose d'un point de vue rapidité par contre.

n°937537
mandracke7​6
Posté le 05-01-2005 à 11:04:31  profilanswer
 

La table trafic est remplis au fil de l’eau, lors du traitement des données (par un premier programme) et permet en cas de soucis principalement de contrôler les données.  
Tandis que la table résumer permet de faire des stats (par l'intermédiaire d'un deuxième programme indépendant du premier).
 
Merci  pour ton aide.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  convert datetime format to datetime format

 

Sujets relatifs
Format d'une chaine de caractères alphanumériqueAide sur les datetime d'Oracle pour une modotte à forte poitrine
définir le format d'un email outlook avec VBAFormat Date d'Access
[dreamweaver]Format de ma page webcomment envoyer un mail au format html en java?
conversion str en date ou datetimedatetime
pb d'addition avec number_formatpb d'enregistrement sous excel au format csv
Plus de sujets relatifs à : convert datetime format to datetime format


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR