2016-03-23 5 views
0

MS SQL Serverでテーブルデータを生成してPostgreSQLに挿入しました。postgres datetimeフィールド "x00008F4900000000"

スクリプトは、 "x00008F4900000000" またはその近くのインサート

INSERT INTO Bank_Draft_Information (Bank_Code, Draft_Type, Transaction_Type, Institution_Code, Serial_Number, Bank_Draft_Date, Total_Amount, Balance_Amount, Created_By, Created_On, Amended_By, Amended_On) 
VALUES 

(6, 'C', 'I', NULL, NULL, 0x00008F4900000000 AS DateTime, 1500.0000, 1000.0000, 1, 0x0000950400000000 AS DateTime, 19, 0x0000A32400000000 AS DateTime)); 

ガット・エラーこのエラー、

構文エラー

よりのこの形式を持つにアクセス全くありませんMS SQL Serverデータベース。どのように私はこれをPostgresの日付オブジェクトに変換できますか?

+1

実際にどのような日付で表されているかを把握し、適切なリテラルを使用してください。 –

+0

@ GordonLinoff私はこの形式がこの日付であるかどうかわかりません。あなたは知っていましたか? –

+0

SQL Serverの 'timestamp'は「本当の」タイムスタンプとは関係ありません。これは、行バージョンのようなものです。 SQL Serverの外部で使用できるものに変換できないバイナリデータが含まれています。 –

答えて

0

this articleから:

それでは、どのようにSQL Serverが内部的に日付を格納しますか?これは8バイトを使用して日付時刻の値を格納します。日付の最初の4文字と時刻の2番目の日付です。 SQL Serverは、4バイトの両方のセットを整数として解釈できます。日付部分については、SQL Serverが格納する値は、1900年1月1日の基準日の前後の日数です。(...)

SQL Serverは時刻の2番目の整数をクロックの数として格納します真夜中後にダニ。秒には300ティックが含まれているため、ティックは3.3ミリ秒に相当します。日時の値をバイナリ(8)値に変換し、部分文字列関数を使用して4バイトの各セットを抽出することによって、日とクロックティックの値を見ることができます。図3のコードは、4バイトの各セットを整数に変換します。

おそらく、x00008F49はおそらく1900年1月1日以降の過去の日数を表していると考えていることを考慮すると、残りの文字列はおそらく時間表現です。 0なので深夜を表します。

関連する問題