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

SQL Oracle Discussion :

Convertir en DateTime depuis un Timestamp SQL Server


Sujet :

SQL Oracle

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Convertir en DateTime depuis un Timestamp SQL Server


    Je récupère sur Oracle des données provenant d'une base SQL Server. Dans ces données ce trouve un Timestamp mais moi il me faut un DateTime.
    Comment peut-on utiliser un Timestamp SQL Server en Oracle ?


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Connais pas ce que c'est le Timestamp dans SQL Server. Un exemple ?
    Et puis comment ces données sont récupérées: via un fichier, via un lien direct à la base SQLServer, autre ?

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Les données sont récupérées depuis une requête genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT "time",
           "gateId"
      FROM dbo.table_name@maestro a
     WHERE a."gateId" IN (SELECT a."gateId"
                            FROM dbo.table_name@maestro a
                           WHERE     a."name" LIKE '%RCO%'
                                 AND a."description" IN ('S1', 'DS'));
    et le timestamp est comme ceci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    J'ai testé de cette manière mais ça ne fonctionne pas du tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (TO_DATE ('01-JAN-1900') + 1199606400000) - 2 FROM DUAL;
    ORA-01858: Caractère non numérique trouvé à la place d'un caractère numérique
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Après pas mal de tests, ceci fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT (  TIMESTAMP '1970-01-01 00:00:00 GMT'
            + NUMTODSINTERVAL (
                 SUBSTR (TO_CHAR (1199602800000),
                         1,
                         LENGTH (TO_CHAR (1199602800000)) - 3),
                 'SECOND'))
              AS dte
      FROM DUAL;
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    J'ai trouvé ici cette information mais il faut encore creuser je pense.
    Date and time are stored as two 4-byte integers. The date portion is represented as a count of the number of days offset from a baseline date (1/1/1900) and is stored in the first integer. Permitted values are legal dates between 1st January, 1753 AD and 31st December, 9999 AD. Permitted values in the time portion are legal times in the range 0 to 25920000. Accuracy is to the nearest 3.33 milliseconds with rounding downward. Columns of type DATETIME have a default value of 1/1/1900.

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    En vrai ce n'est pas un datatype TIMESTAMP SQL-Server, c'est une définition fonctionnelle qui ressemble accessoirement à un timestamp unix.

    Par contre je suis toujours épaté par ces formules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_NUMBER(SUBSTR (TO_CHAR (1199602800000), 1, LENGTH (TO_CHAR (1199602800000)) - 3))
    J'ai rajouté le to_number car il est implicitement fait par le SGBD car la fonction NUMTODSINTERVAL prend un nombre en premier argument.

    Alors qu'une simple division arrondie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNC(1199602800000 / 1000)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Datetime sans time avec sql server ?
    Par FamiDoo dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 17/07/2012, 09h38
  2. convertir Date en Mili second en un TimeStamp SQL server
    Par zambizi dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 02/12/2008, 09h31
  3. Requete depuis Oracle vers SQL server
    Par Mr bungle dans le forum Oracle
    Réponses: 2
    Dernier message: 20/09/2007, 09h37
  4. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20
  5. Convertir un type de donnée sous SQL Server
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2003, 15h15

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