Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
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 18/07/2005, 11h51   #1
Membre régulier
 
Inscription : juillet 2005
Messages : 93
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 93
Points : 74
Points : 74
Par défaut [T-SQL] Conversion varChar en timeStamp

Bonjour,

Sous Sybase ASE 12.5. Comment peut-on convertir une variable de type varChar en une variable de type timeStamp ?

Merci, Thig
Thig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2005, 16h05   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Le timestamp ne se touche pas. Si vous voulez traiter de la date et de l'heure, préférez un champ DATETIME
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2005, 16h23   #3
Membre régulier
 
Inscription : juillet 2005
Messages : 93
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 93
Points : 74
Points : 74
Par défaut [Sybase] Conversion varChar en timeStamp

Pour préciser mon problème :

J'utilise le timestamp dans la clause where d'un update pour vérifier que la ligne que je veux modifier n’ait pas été modifiée par un autre traitement où utilisateur.
Je récupère le timestamp comme paramètre d'une proc stock, sous forme d'un chaine (varchar)
et je cherches comment convertir ma variable de type varchar en variable de type timestamp pour l'utiliser dans la clause where d'un update.

Thig
Thig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2005, 14h17   #4
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Pourquoi ne le récupérez-vous pas en timestamp directement ?

sinon

Code :
 convert(timestamp, @var)
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2005, 17h27   #5
Membre régulier
 
Inscription : juillet 2005
Messages : 93
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 93
Points : 74
Points : 74
Par défaut [Sybase] Conversion varChar en timeStamp

Bonjour,

Malheureusement, je ne peux pas directement récupérer une variable de type timestamp car l'application client ne connait pas ce type de donnée; cette donnée est transformé par le client en chaine...

D'autre part la fonction "convert(timestamp, @var)" me retourne l'erreur : type 'timestamp' is not a defined system type

D'apres la doc de sybase, un "timestamp" est en fait un varbinary( 8 ), mais la fonction convert(varbinary( 8 ), @var) fonctionne, mais ne semble pas donner la bonne valeur ...

Merci, Thig
Thig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2005, 00h38   #6
Membre du Club
 
Inscription : octobre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 79
Points : 46
Points : 46
Par défaut Re: [Sybase] Conversion varChar en timeStamp

Citation:
Envoyé par Thig
Pour préciser mon problème :

J'utilise le timestamp dans la clause where d'un update pour vérifier que la ligne que je veux modifier n’ait pas été modifiée par un autre traitement où utilisateur.
Je récupère le timestamp comme paramètre d'une proc stock, sous forme d'un chaine (varchar)
et je cherches comment convertir ma variable de type varchar en variable de type timestamp pour l'utiliser dans la clause where d'un update.

Thig
Il y a une réponse à ton problème depuis ?

Normalement si tu utilises des transactions pour ton update la donnée ne peux pas être modifier pendent ta mise à jour du fait qu'il a un vérrou exclusif sur ta table (ou page ou rows, selon ta configuration).
lsone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2005, 12h11   #7
Membre régulier
 
Inscription : juillet 2005
Messages : 93
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 93
Points : 74
Points : 74
Par défaut [Sybase] Conversion varChar en timeStamp

Bonjour

Non et l'utilisation de transaction ne me semble pas possible dans la cinématique des écrans de mon client.
Aussi, j'utilise une fonction de conversion maison et très bidouille... en attendant mieux...


..
SELECT @ASETimeStamp = "00000000"
SELECT @i = 0
WHILE @i < 8
BEGIN
SELECT @ASETimeStamp = STUFF(@ASETimeStamp,@i+1,1,CHAR(HEXTOINT("0x"+SUBSTRING(@PbTimeStamp,1+(@i*2),2))))
SELECT @i = @i + 1
END
...
Thig 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 05h56.


 
 
 
 
Partenaires

Hébergement Web