···13721372 @datetime_type Application.compile_env(:ecto_sqlite3, :datetime_type, :iso8601)
1373137313741374 defp expr({:datetime_add, _, [datetime, count, interval]}, sources, query) do
13751375- format = Ecto.Adapters.SQLite3.Codec.datetime_format(@datetime_type)
13751375+ format =
13761376+ case @datetime_type do
13771377+ :text_datetime ->
13781378+ "%Y-%m-%d %H:%M:%f000Z"
13791379+13801380+ _ ->
13811381+ "%Y-%m-%dT%H:%M:%f000Z"
13821382+ end
1376138313771384 [
13781385 "CAST (",
+15-15
test/ecto/adapters/sqlite3/codec_test.exs
···144144 end
145145146146 describe ".utc_datetime_encode/2" do
147147- setup do
148148- [dt: ~U[2021-08-25 10:58:59Z]]
149149- end
150150-151147 test "nil" do
152148 assert {:ok, nil} = Codec.utc_datetime_encode(nil, :iso8601)
153149 assert {:ok, nil} = Codec.utc_datetime_encode(nil, :text_datetime)
154150 end
155151156156- test "iso8601", %{dt: dt} do
157157- dt_str = "2021-08-25T10:58:59"
152152+ test "iso8601" do
153153+ dt = ~U[2021-08-25 10:58:59Z]
154154+ dt_str = "2021-08-25T10:58:59Z"
158155 assert {:ok, ^dt_str} = Codec.utc_datetime_encode(dt, :iso8601)
159156 end
160157161161- test ":text_datetime", %{dt: dt} do
158158+ test ":text_datetime" do
159159+ dt = ~U[2021-08-25 10:58:59Z]
162160 dt_str = "2021-08-25 10:58:59"
163161 assert {:ok, ^dt_str} = Codec.utc_datetime_encode(dt, :text_datetime)
164162 end
165163166166- test "unknown datetime type", %{dt: dt} do
164164+ test "unknown datetime type" do
165165+ dt = ~U[2021-08-25 10:58:59Z]
166166+167167 msg =
168168 "expected datetime type to be either `:iso8601` or `:text_datetime`, but received `:whatsthis`"
169169···174174 end
175175176176 describe ".naive_datetime_encode/2" do
177177- setup do
178178- [dt: ~U[2021-08-25 10:58:59Z], dt_str: "2021-08-25T10:58:59"]
179179- end
180180-181177 test "nil" do
182178 assert {:ok, nil} = Codec.naive_datetime_encode(nil, :iso8601)
183179 assert {:ok, nil} = Codec.naive_datetime_encode(nil, :text_datetime)
184180 end
185181186186- test "iso8601", %{dt: dt} do
182182+ test "iso8601" do
183183+ dt = ~U[2021-08-25 10:58:59Z]
187184 dt_str = "2021-08-25T10:58:59"
188185 assert {:ok, ^dt_str} = Codec.naive_datetime_encode(dt, :iso8601)
189186 end
190187191191- test ":text_datetime", %{dt: dt} do
188188+ test ":text_datetime" do
189189+ dt = ~U[2021-08-25 10:58:59Z]
192190 dt_str = "2021-08-25 10:58:59"
193191 assert {:ok, ^dt_str} = Codec.naive_datetime_encode(dt, :text_datetime)
194192 end
195193196196- test "unknown datetime type", %{dt: dt} do
194194+ test "unknown datetime type" do
195195+ dt = ~U[2021-08-25 10:58:59Z]
196196+197197 msg =
198198 "expected datetime type to be either `:iso8601` or `:text_datetime`, but received `:whatsthis`"
199199