From 49a5bacee5479afb3b3777b2860c2d707c7c8894 Mon Sep 17 00:00:00 2001 From: Mykhailo Vstavskyi Date: Fri, 1 Apr 2022 20:43:20 +0300 Subject: [PATCH] fix naive_datetime_usec utc_datetime_usec --- lib/jamdb_oracle.ex | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/jamdb_oracle.ex b/lib/jamdb_oracle.ex index 6c8d155..b30331b 100644 --- a/lib/jamdb_oracle.ex +++ b/lib/jamdb_oracle.ex @@ -297,8 +297,18 @@ defimpl DBConnection.Query, for: Jamdb.Oracle.Query do defp encode(true), do: "1" defp encode(false), do: "0" defp encode(%Decimal{} = decimal), do: Decimal.to_float(decimal) - defp encode(%DateTime{} = datetime), do: NaiveDateTime.to_erl(DateTime.to_naive(datetime)) - defp encode(%NaiveDateTime{} = naive), do: NaiveDateTime.to_erl(naive) + defp encode(%DateTime{microsecond: {0, 0}} = datetime), + do: NaiveDateTime.to_erl(DateTime.to_naive(datetime)) + defp encode(%DateTime{microsecond: {ms, _}} = datetime) do + {date, {hour, min, sec}} = NaiveDateTime.to_erl(DateTime.to_naive(datetime)) + {date, {hour, min, sec, ms}} + end + defp encode(%NaiveDateTime{microsecond: {0, 0}} = naive), + do: NaiveDateTime.to_erl(naive) + defp encode(%NaiveDateTime{microsecond: {ms, _}} = naive) do + {date, {hour, min, sec}} = NaiveDateTime.to_erl(naive) + {date, {hour, min, sec, ms}} + end defp encode(%Date{} = date), do: Date.to_erl(date) defp encode(%Ecto.Query.Tagged{value: elem, type: :binary}) when is_binary(elem), do: elem defp encode(elem) when is_binary(elem), do: Jamdb.Oracle.to_list(elem)