Wie konvertiert man hex 'YMD' in ein lesbares Datum?

8

Ich habe eine Datei mit einer Reihe von Daten darin erhalten. Sie sind im Hex-Format und mir wurde gesagt, dass es YMD ist.

Beispiel ist: 4A273F

.. irgendeine Idee, wie ich es konvertieren würde? Idealling mit SQL / PLSQL, aber ich bin offen für andere Ideen.

Danke!

    
Monty 09.11.2010, 01:07
quelle

3 Antworten

1

Oracle und Java spielen ziemlich gut miteinander, und das ist vielleicht eine neue Idee, wenn du dich ungünstig fühlst. Java macht das ziemlich einfach, aber ich bin von einer Orakel-Box entfernt und kann nicht testen. Das tut wirklich weh, ich bin im Moment nicht vor einer Orakelmaschine. Um sicherzugehen, dass ich mich richtig erinnerte, habe ich Schritte von hier aus benutzt   Ссылка

und dann habe ich das gegoogelt, was fast wortwörtlich ist, was wir unten machen werden: Ссылка

%Vor%

Speichern Sie diese Datei als Hex2Date.java im Verzeichnis 'yourJava' und geben Sie in einer cmd-Zeile in diesem Verzeichnis Folgendes ein:

javac Hex2Date.java

Geben Sie nun Folgendes ein:

java Hex2Date.java 0x4A273F

Wenn Sie die richtigen Daten und die Ergebnisse erhalten, sagen wir Orakel über unsere kleine Funktion. Sie benötigen zuerst einige Benutzerrechte: GRANT JAVAUSERPRIV an Ihren Benutzer hier; tippe dies ein: loadjava -user scott / tiger -resolve Hex2Date.class

wickle das nun in pl / sql um, damit du es in pl / sql aufrufen kannst:

%Vor%

Führen Sie es jetzt von einer SQL-Eingabeaufforderung aus: SQL & gt; exec DBMS_OUTPUT.PUT_LINE (hex2Date ('0x4A273F'))

    
DefyGravity 12.11.2010 15:14
quelle
0

Ich nehme an, sie sind Unix-Daten? Ich nehme auch an, dass Sie mit SQL / PLSQL auf SQL Server und Oracle zugreifen können? Wenn meine Vermutungen beide richtig sind, würde ich die Konvertierungsfunktion von SQL Server verwenden:

Wählen Sie konvertieren (int, 0x4A273F)

Zusätzlich zu seiner Funktion zum Hinzufügen von Datumsangaben (ab dem 1. Januar 1970, fügen Sie Sekunden hinzu):

Wählen Sie dateadd (ss, {your_result}, '19700101')

Natürlich, wenn sie alle in CSV-Dateien sind, könnte ein Skript genauso gut funktionieren. Hast du mehr Informationen?

    
cag 09.11.2010 03:22
quelle
0

Wenn die 'HEX'-Werte von einem Mainframe stammen, dann sind sie vielleicht EBCDIC (Extended Binary Coded Decimal Interchange Code) und nicht HEX? Ich habe keine Zeit, es jetzt zu überdenken, aber versuche diese Seite für Ideen / Hinweise? Ссылка Natürlich kann ich den falschen Baum bellen:)

Nehmen Sie an, 50 34 2E ist der 27. April 2009

%Vor%     
Mark 26.11.2010 22:56
quelle

Tags und Links