Conversion TIMESTAMP --> heure (hh:mm)

Le
Gaëtan
Bonjour

Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh :mm)

Si quelqu’un parmi vous possède une quelconque astuce de conversion

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain Lafontaine
Le #11881531
Mauvaise nouvelle: vous ne pouvez pas faire ça. Malgré leur nom, les
Timestamp n'ont rien à voir avec l'heure ou une quelconque heure: il s'agit
seulement d'un numéro automatiquement croissant, un peu comme les valeurs
Identity mais s'appliquant à l'ensemble du serveur sql.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Gaëtan" news:
Bonjour

Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh
:mm)

Si quelqu'un parmi vous possède une quelconque astuce de conversion

Merci



Fred BROUARD
Le #11881521
Vous voulez sans doute parler d'un DATETIME (combiné DATE + HEURE de SQL
Server) car le timestamp est un n° de version de ligne de table
(mécanisme interne) et n'a rien à voir avec le TIMESTAMP de la norme SQL !


A +
Gaëtan a écrit :
Bonjour

Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh :mm)

Si quelqu’un parmi vous possède une quelconque astuce de conversion

Merci





--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Gaëtan
Le #11881511
Bonjour Sylvain

Pourtant à partir de la valeur de ce timestamp je parviens quasiment à
obtenir le résultat que je souhaite.

Je m'explique :
En manipulant la chaine de caractère obtenue et en appliquant des opérations
mathématiques j'arrive presque à obtenir l'heure.

Voici un exemple :
SELECT CAST(LEFT (b.debut /3600,2) AS varchar(2)) + ':' + CAST(RIGHT(LEFT
(b.debut /3600,4),2)*60/100 AS varchar(2))

Grâce à cette astuce j'arrive à récupérer l'heure de type 15:15 par exemple.
Mais mon soucis persiste lorsqu'il s'agit d'une heure « pile » exemple
10:00, avec mon traitement j'obtiens 10:0
(:s) il me manque un 0

Si vous avez une idée ? Un conseil je suis preneur.

Merci pour vos réponses précédentes.




"Sylvain Lafontaine" a écrit :

Mauvaise nouvelle: vous ne pouvez pas faire ça. Malgré leur nom, les
Timestamp n'ont rien à voir avec l'heure ou une quelconque heure: il s'agit
seulement d'un numéro automatiquement croissant, un peu comme les valeurs
Identity mais s'appliquant à l'ensemble du serveur sql.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Gaëtan" news:
> Bonjour
>
> Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh
> :mm)
>
> Si quelqu'un parmi vous possède une quelconque astuce de conversion
>
> Merci
>





Gaëtan
Le #11881501
Bonjour Fred

Non non, il s’agit bien du type TIMESTAMP

Pourtant à partir de la valeur de ce timestamp je parviens quasiment à
obtenir le résultat que je souhaite.

Je m'explique :
En manipulant la chaine de caractère obtenue et en appliquant des opérations
mathématiques j'arrive presque à obtenir l'heure.

Voici un exemple :
SELECT CAST(LEFT (b.debut /3600,2) AS varchar(2)) + ':' + CAST(RIGHT(LEFT
(b.debut /3600,4),2)*60/100 AS varchar(2))

Grâce à cette astuce j'arrive à récupérer l'heure de type 15:15 par exemple.
Mais mon soucis persiste lorsqu'il s'agit d'une heure « pile » exemple
10:00, avec mon traitement j'obtiens 10:0
(:s) il me manque un 0

Si vous avez une idée ? Un conseil je suis preneur.

Merci pour vos réponses précédentes.


"Fred BROUARD" a écrit :

Vous voulez sans doute parler d'un DATETIME (combiné DATE + HEURE de SQL
Server) car le timestamp est un n° de version de ligne de table
(mécanisme interne) et n'a rien à voir avec le TIMESTAMP de la norme SQL !


A +
Gaëtan a écrit :
> Bonjour
>
> Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh :mm)
>
> Si quelqu’un parmi vous possède une quelconque astuce de conversion
>
> Merci
>


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************



Fred BROUARD
Le #11881491
Gaëtan a écrit :
Bonjour Fred

Non non, il s’agit bien du type TIMESTAMP

Pourtant à partir de la valeur de ce timestamp je parviens quasiment à
obtenir le résultat que je souhaite.

Je m'explique :
En manipulant la chaine de caractère obtenue et en appliquant des opérations
mathématiques j'arrive presque à obtenir l'heure.

Voici un exemple :
SELECT CAST(LEFT (b.debut /3600,2) AS varchar(2)) + ':' + CAST(RIGHT(LEFT
(b.debut /3600,4),2)*60/100 AS varchar(2))

Grâce à cette astuce j'arrive à récupérer l'heure de type 15:15 par exemple.
Mais mon soucis persiste lorsqu'il s'agit d'une heure « pile » exemple
10:00, avec mon traitement j'obtiens 10:0
(:s) il me manque un 0

Si vous avez une idée ? Un conseil je suis preneur.



ben non, cparce que c'est pas fait pour cela est c'est en plus obsolète.
MS le considère comme "deprecated", c'est à dire non supporté dans les
versions futures....

Si vous nous disiez quelle est votre intention au sujet de l'utilisation
de cette colonne ???

A +


Merci pour vos réponses précédentes.


"Fred BROUARD" a écrit :

Vous voulez sans doute parler d'un DATETIME (combiné DATE + HEURE de SQL
Server) car le timestamp est un n° de version de ligne de table
(mécanisme interne) et n'a rien à voir avec le TIMESTAMP de la norme SQL !


A +
Gaëtan a écrit :
Bonjour

Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh :mm)

Si quelqu’un parmi vous possède une quelconque astuce de conversion

Merci




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************







--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Sylvain Lafontaine
Le #11881481
Ben là, il faudrait voir ce que vous avez exactement entre les mains. Si
vous créez une date localement et que vous la stocker dans un Timestamp,
probablement que vous avez quelque chose comme ça puisque fondamentalement,
un timestamp est l'équivalent d'un binary(8).

Pour stocker les heures et les dates, vous devez utiliser un DateTime. Si
vous voulez avoir l'heure et la date de création, utilisez getDate() comme
valeur par défaut et si vous voulez mettre à jour l'heure et la date à
chaque modification, utilisez un trigger pour mettre à jour cette valeur
lors des updates (ou faites-le dans le code client ou dans une procédure
stockée).

Pour le reste, si vous persistez à vouloir utiliser un Timestamp comme champ
d'heure, je n'ai pas vraiment d'idée au sujet de la solution. Pour votre
problème de 0 manquant, utilisez un CASE ou concatener votre valeur avec un
'0' (afin d'avoir au minimum deux '0') avant de prendre les deux chiffres de
droites avec votre Right().

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Gaëtan" news:
Bonjour Sylvain

Pourtant à partir de la valeur de ce timestamp je parviens quasiment à
obtenir le résultat que je souhaite.

Je m'explique :
En manipulant la chaine de caractère obtenue et en appliquant des
opérations
mathématiques j'arrive presque à obtenir l'heure.

Voici un exemple :
SELECT CAST(LEFT (b.debut /3600,2) AS varchar(2)) + ':' + CAST(RIGHT(LEFT
(b.debut /3600,4),2)*60/100 AS varchar(2))

Grâce à cette astuce j'arrive à récupérer l'heure de type 15:15 par
exemple.
Mais mon soucis persiste lorsqu'il s'agit d'une heure « pile » exemple
10:00, avec mon traitement j'obtiens 10:0
(:s) il me manque un 0

Si vous avez une idée ? Un conseil je suis preneur.

Merci pour vos réponses précédentes.




"Sylvain Lafontaine" a écrit :

Mauvaise nouvelle: vous ne pouvez pas faire ça. Malgré leur nom, les
Timestamp n'ont rien à voir avec l'heure ou une quelconque heure: il
s'agit
seulement d'un numéro automatiquement croissant, un peu comme les valeurs
Identity mais s'appliquant à l'ensemble du serveur sql.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Gaëtan" news:
> Bonjour
>
> Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh
> :mm)
>
> Si quelqu'un parmi vous possède une quelconque astuce de conversion
>
> Merci
>







Julien Bonnier
Le #11881091
Ce n'est pas parce que tu arrives à obtenir quelque chose qui resemmble à
une heure que s'en est forcément une tien si je te donne un entier par
exemple.

1422

Je suis capable d'obtenir l'heure avec

SELECT STUFF(CAST(1422 AS varchar), 3, 0, ":")

Seulement si 1422 représente le nombre de pas que j'ai fait dans ma
journée... mon heure de 14:22 est là mais ne représente pas la bonne chose
tu vois ?

"Gaëtan" news:
Bonjour Fred

Non non, il s'agit bien du type TIMESTAMP

Pourtant à partir de la valeur de ce timestamp je parviens quasiment à
obtenir le résultat que je souhaite.

Je m'explique :
En manipulant la chaine de caractère obtenue et en appliquant des
opérations
mathématiques j'arrive presque à obtenir l'heure.

Voici un exemple :
SELECT CAST(LEFT (b.debut /3600,2) AS varchar(2)) + ':' + CAST(RIGHT(LEFT
(b.debut /3600,4),2)*60/100 AS varchar(2))

Grâce à cette astuce j'arrive à récupérer l'heure de type 15:15 par
exemple.
Mais mon soucis persiste lorsqu'il s'agit d'une heure « pile » exemple
10:00, avec mon traitement j'obtiens 10:0
(:s) il me manque un 0

Si vous avez une idée ? Un conseil je suis preneur.

Merci pour vos réponses précédentes.


"Fred BROUARD" a écrit :

Vous voulez sans doute parler d'un DATETIME (combiné DATE + HEURE de SQL
Server) car le timestamp est un n° de version de ligne de table
(mécanisme interne) et n'a rien à voir avec le TIMESTAMP de la norme SQL
!


A +
Gaëtan a écrit :
> Bonjour
>
> Je souhaiterai convertir un type TIMESTAMP en format heure du type (hh
> :mm)
>
> Si quelqu'un parmi vous possède une quelconque astuce de conversion
>
> Merci
>


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************





Publicité
Poster une réponse
Anonyme