IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Adaptive Server Enterprise Sybase Discussion :

[T-SQL] Conversion varChar en timeStamp


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 97
    Points
    97
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    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 / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 97
    Points
    97
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Pourquoi ne le récupérez-vous pas en timestamp directement ?

    sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     convert(timestamp, @var)
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 97
    Points
    97
    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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Points : 78
    Points
    78
    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).

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 97
    Points
    97
    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
    ...

Discussions similaires

  1. [Linq To SQL] Conversion d'un binary en varchar
    Par TimTam dans le forum Linq
    Réponses: 0
    Dernier message: 18/09/2010, 11h26
  2. Réponses: 0
    Dernier message: 21/06/2010, 16h58
  3. conversion varchar vers timestamp
    Par kyrsa dans le forum Oracle
    Réponses: 2
    Dernier message: 28/02/2007, 17h58
  4. [T-SQL] Conversion varChar en timeStamp
    Par Thig dans le forum Sybase
    Réponses: 6
    Dernier message: 27/10/2005, 12h11
  5. Transact Sql : Conversion de variable
    Par lord_paco dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/08/2003, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo