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

MS SQL Server Discussion :

[TIMESTAMP] conversion float -> timestamp


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 10
    Points
    10
    Par défaut [TIMESTAMP] conversion float -> timestamp
    Bonjour,

    je travaille sur une base de données SQL 200 qui stocke pour chaque ligne de donnée la date à laquelle elle a été modifiée sous forme d'un timestamp.

    J'ai écrit une requète récupérant les données modifiées les dernières 24h
    (WHERE DATEADD(HOUR, 24, dTimeSpamp) > CURRENT_TIMESTAMP)
    et j'ai récupéré plus de données que prévu.
    Dans la base, la colonne des timestamp s'affiche sous forme de float et je voudrais savoir comment les convertir en date compréhensible ?

    Je sais le faire dans un script Visual Basic (CDate(XXX.XXX)) mais avec cette méthode les données en trop date d'il y a 3 jours. J'aimerais donc obtenir la version de SQL Server 2000 pour comprendre pourquoi ces données sont sélectionnées par ma requête.

    Merci d'avance!
    Yridwenn.

    EDIT :

    J'ai réussit à convertir mon float en date (et pas en timestamp!)... c'était pas très compliqué, il me semblait avoir déjà essayé ça mais bon, toujours est-il que :
    En SQL : Select convert(datetime, 38936.583900463) => 2006-08-09 14:00:49.000
    En VB : CDate(38936.583900463) => 07/08/2006 14:00:49

    j'ai un décalage de 2 jours dans chacune de mes conversions... Quelqu'un sait-il pourquoi?
    les formats ne sont pas identiques?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Vous avez réellement utilisé le type SQL Server TIMESTAMP ??? Cela ne correspond nullement au TIMESTAMP de la norme SQL.

    Voici un extrait de la doc en ligne MS :

    ***

    timestamp
    timestamp est un type de données qui présente des nombres binaires automatiquement générés, et dont l'unicité est garantie dans une base de données. timestamp est généralement utilisé en tant que mécanisme d'affectation d'un numéro de version aux lignes des tables. La taille de stockage est de 8 octets.

    Notes
    Le type de données timestamp Transact-SQL diffère du type de données timestamp défini dans la norme SQL-92. Le type de données timestamp SQL-92 est équivalent au type de données datetime Transact-SQL.

    Une version future de Microsoft® SQL Server™ pourra présenter un type de données timestamp Transact-SQL dont le comportement sera calqué sur le type de données standard. À ce moment-là, le type de données timestamp actuel sera remplacé par un type de données rowversion.

    Microsoft® SQL Server™ 2000 présente un type de données rowversion synonyme du type de données timestamp. Utilisez rowversion au lieu de timestamp autant que possible dans les instructions DDL


    ***

    Vous auriez du utiliser un type DATETIME.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    je ne suis pas responsable de la création de la base de données en question. Elle est générée par une autre application qui fournit une interface spéciale aux utilisateurs.

    Je dois extraire des données de cette base mais cette application étant propriétaire, je ne trouve pas beaucoup d'informations sur les tables créées.
    Le champ Timestamp des tables devrait contenir la date de dernière modification.
    En effet, cette application pouvant s'utiliser avec différent SGBD, j'ai supposé que le type Timestamp bien que n'étant pas utilisé comme ça habituellement en SQL Server correspondait quand même à une date exploitable dans mon cas.

    Cela vous semble-t-il possible ou le type SQL timestamp ne peut pas du tout recevoir de dates valides?

    Merci d'avance,
    yridwenn.

Discussions similaires

  1. probleme de conversion d'un timestamp en date
    Par mimaaaa dans le forum JSF
    Réponses: 8
    Dernier message: 27/10/2008, 18h49
  2. conversion varchar vers timestamp
    Par kyrsa dans le forum Oracle
    Réponses: 2
    Dernier message: 28/02/2007, 17h58
  3. pb conversion char to timestamp
    Par peppena dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 31/01/2007, 15h00
  4. [T-SQL] Conversion varChar en timeStamp
    Par Thig dans le forum Adaptive Server Enterprise
    Réponses: 6
    Dernier message: 27/10/2005, 12h11
  5. [T-SQL] Conversion varChar en timeStamp
    Par Thig dans le forum Sybase
    Réponses: 6
    Dernier message: 27/10/2005, 12h11

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