0
JSONドキュメント(私のPythonクライアントでjson.dumps(payload, default=json_util.default))
で作成)をmy dbに挿入したいとします。私はSQL Server(Azure)で次の手順を実行します。SQL ServerでOPENJSONを使用してBSONの日付(Unixエポック)を解析する方法
CREATE PROCEDURE InsertReading(@reading nvarchar(max))
AS BEGIN
insert into Readings(IdMongo, Value, Name, Date)
SELECT _id, value, name, date
FROM OPENJSON (@reading)
WITH (_id nvarchar(50),
value float,
date datetime,
name nvarchar(50))
END
それは(私が持っている文書ではない - テストのみ)私はこのようなデータとそれを実行すると正常に動作します:
EXEC InsertReading '{
"value" : 21.625,
"name" : "myname",
"date" : "2016-03-30T07:38:27.102Z"
}'
しかし、それは
EXEC InsertReading '{"date": {"$date": 1503074335547}, "value": 23.5, "name": "myname"}'
エラー(日付で失敗変換は失敗し、nullを返します)。
Cannot insert the value NULL into column 'Date', table 'db.dbo.Readings'; column does not allow nulls. INSERT fails.
JSONを正しく挿入するにはどうすればいいですか?クライアントの日付形式を変更することなく(mongoとSQLに同時に送信しています)。
これは問題なく動作します。 'datetime'の代わりに' datetime2'を使って、 '2017-08-19T15:42:46.5065156Z'のような精度の高い日付を挿入するだけでした – savageBum