You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ag...@apache.org on 2022/11/04 19:28:32 UTC

[arrow-datafusion] branch master updated: Update to arrow 26, change timezones (#4039)

This is an automated email from the ASF dual-hosted git repository.

agrove pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/master by this push:
     new dd081d64a Update to arrow 26, change timezones (#4039)
dd081d64a is described below

commit dd081d64a2fba8574e63bdd0662c14aec5852b48
Author: Raphael Taylor-Davies <17...@users.noreply.github.com>
AuthorDate: Sat Nov 5 08:28:26 2022 +1300

    Update to arrow 26, change timezones (#4039)
    
    * Update to arrow 26
    
    * Update datafusion-cli
    
    * Update datafusion-cli lockfile
    
    * More test fixes
    
    * Re-add dyn_cmp_dict dev-dependencies
    
    * Update datafusion-cli lock
    
    * fix: Update tests
    
    * Update datafusion optimizer tests
    
    * Fix test
    
    Co-authored-by: Andrew Lamb <an...@nerdnetworks.org>
---
 benchmarks/Cargo.toml                              |   4 +-
 datafusion-cli/Cargo.lock                          | 277 ++++++--------
 datafusion-cli/Cargo.toml                          |   2 +-
 datafusion-examples/Cargo.toml                     |   4 +-
 datafusion/common/Cargo.toml                       |   4 +-
 datafusion/core/Cargo.toml                         |   7 +-
 datafusion/core/src/config.rs                      |   2 +-
 datafusion/core/src/datasource/file_format/avro.rs |  16 +-
 datafusion/core/src/datasource/listing/table.rs    |   2 +-
 datafusion/core/src/physical_optimizer/pruning.rs  |   2 +-
 .../physical_plan/sorts/sort_preserving_merge.rs   | 102 ++---
 datafusion/core/tests/parquet_pruning.rs           |   8 +-
 datafusion/core/tests/sql/aggregates.rs            |   4 +-
 datafusion/core/tests/sql/arrow_typeof.rs          |   2 +-
 datafusion/core/tests/sql/create_drop.rs           |   4 +-
 datafusion/core/tests/sql/group_by.rs              |   4 +-
 datafusion/core/tests/sql/information_schema.rs    |  11 +-
 datafusion/core/tests/sql/joins.rs                 |  12 +-
 datafusion/core/tests/sql/mod.rs                   |  14 +-
 datafusion/core/tests/sql/timestamp.rs             | 419 ++++++++++-----------
 datafusion/core/tests/sql/window.rs                |  16 +-
 datafusion/core/tests/user_defined_aggregates.rs   |  12 +-
 datafusion/expr/Cargo.toml                         |   2 +-
 datafusion/expr/src/function.rs                    |   2 +-
 datafusion/jit/Cargo.toml                          |   2 +-
 datafusion/optimizer/Cargo.toml                    |   2 +-
 .../src/simplify_expressions/simplify_exprs.rs     |   2 +-
 datafusion/optimizer/tests/integration-test.rs     |  19 +-
 datafusion/physical-expr/Cargo.toml                |   6 +-
 .../physical-expr/src/datetime_expressions.rs      |   8 +-
 datafusion/proto/Cargo.toml                        |   2 +-
 datafusion/row/Cargo.toml                          |   2 +-
 datafusion/sql/Cargo.toml                          |   2 +-
 datafusion/sql/src/planner.rs                      |   2 +-
 parquet-test-utils/Cargo.toml                      |   2 +-
 test-utils/Cargo.toml                              |   2 +-
 36 files changed, 475 insertions(+), 508 deletions(-)

diff --git a/benchmarks/Cargo.toml b/benchmarks/Cargo.toml
index 2104a96c6..1319bfab2 100644
--- a/benchmarks/Cargo.toml
+++ b/benchmarks/Cargo.toml
@@ -33,14 +33,14 @@ simd = ["datafusion/simd"]
 snmalloc = ["snmalloc-rs"]
 
 [dependencies]
-arrow = "25.0.0"
+arrow = "26.0.0"
 datafusion = { path = "../datafusion/core" }
 env_logger = "0.9"
 futures = "0.3"
 mimalloc = { version = "0.1", optional = true, default-features = false }
 num_cpus = "1.13.0"
 object_store = "0.5.0"
-parquet = "25.0.0"
+parquet = "26.0.0"
 parquet-test-utils = { path = "../parquet-test-utils/" }
 rand = "0.8.4"
 serde = { version = "1.0.136", features = ["derive"] }
diff --git a/datafusion-cli/Cargo.lock b/datafusion-cli/Cargo.lock
index 89f4cc78a..4a6ab53ce 100644
--- a/datafusion-cli/Cargo.lock
+++ b/datafusion-cli/Cargo.lock
@@ -21,9 +21,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e6e951cfbb2db8de1828d49073a113a29fd7117b1596caa781a258c7e38d72"
+checksum = "464b3811b747f8f7ebc8849c9c728c39f6ac98a055edad93baf9eb330e3f8f9d"
 dependencies = [
  "cfg-if",
  "const-random",
@@ -79,15 +79,16 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
 
 [[package]]
 name = "arrow"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76312eb67808c67341f4234861c4fcd2f9868f55e88fa2186ab3b357a6c5830b"
+checksum = "e24e2bcd431a4aa0ff003fdd2dc21c78cfb42f31459c89d2312c2746fe17a5ac"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow-array",
  "arrow-buffer",
  "arrow-data",
  "arrow-schema",
+ "arrow-select",
  "bitflags",
  "chrono",
  "comfy-table",
@@ -107,11 +108,11 @@ dependencies = [
 
 [[package]]
 name = "arrow-array"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69dd2c257fa76de0bcc63cabe8c81d34c46ef6fa7651e3e497922c3c9878bd67"
+checksum = "c9044300874385f19e77cbf90911e239bd23630d8f23bb0f948f9067998a13b7"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow-buffer",
  "arrow-data",
  "arrow-schema",
@@ -123,9 +124,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-buffer"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af963e71bdbbf928231d521083ddc8e8068cf5c8d45d4edcfeaf7eb5cdd779a9"
+checksum = "78476cbe9e3f808dcecab86afe42d573863c63e149c62e6e379ed2522743e626"
 dependencies = [
  "half",
  "num",
@@ -133,9 +134,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-data"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52554ffff560c366d7210c2621a3cf1dc408f9969a0c7688a3ba0a62248a945d"
+checksum = "4d916feee158c485dad4f701cba31bc9a90a8db87d9df8e2aa8adc0c20a2bbb9"
 dependencies = [
  "arrow-buffer",
  "arrow-schema",
@@ -145,9 +146,22 @@ dependencies = [
 
 [[package]]
 name = "arrow-schema"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a5518f2bd7775057391f88257627cbb760ba3e1c2f2444a005ba79158624654"
+checksum = "0f9406eb7834ca6bd8350d1baa515d18b9fcec487eddacfb62f5e19511f7bd37"
+
+[[package]]
+name = "arrow-select"
+version = "26.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6593a01586751c74498495d2f5a01fcd438102b52965c11dd98abf4ebcacef37"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "num",
+]
 
 [[package]]
 name = "async-compression"
@@ -194,9 +208,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "bitflags"
@@ -310,9 +324,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.73"
+version = "1.0.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "581f5dba903aac52ea3feb5ec4810848460ee833876f1f9b0fdeab1f19091574"
 dependencies = [
  "jobserver",
 ]
@@ -338,9 +352,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "3.2.22"
+version = "3.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750"
+checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
 dependencies = [
  "atty",
  "bitflags",
@@ -398,9 +412,9 @@ dependencies = [
 
 [[package]]
 name = "comfy-table"
-version = "6.1.1"
+version = "6.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b3d16bb3da60be2f7c7acfc438f2ae6f3496897ce68c291d0509bb67b4e248e"
+checksum = "1090f39f45786ec6dc6286f8ea9c75d0a7ef0a0d3cda674cef0c3af7b307fbc2"
 dependencies = [
  "strum",
  "strum_macros",
@@ -409,9 +423,9 @@ dependencies = [
 
 [[package]]
 name = "const-random"
-version = "0.1.13"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4"
+checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
 dependencies = [
  "const-random-macro",
  "proc-macro-hack",
@@ -419,12 +433,12 @@ dependencies = [
 
 [[package]]
 name = "const-random-macro"
-version = "0.1.13"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40"
+checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
 dependencies = [
  "getrandom",
- "lazy_static",
+ "once_cell",
  "proc-macro-hack",
  "tiny-keccak",
 ]
@@ -499,9 +513,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8"
+checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -511,9 +525,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86"
+checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827"
 dependencies = [
  "cc",
  "codespan-reporting",
@@ -526,15 +540,15 @@ dependencies = [
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78"
+checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f"
+checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -545,7 +559,7 @@ dependencies = [
 name = "datafusion"
 version = "13.0.0"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow",
  "async-compression",
  "async-trait",
@@ -616,7 +630,7 @@ dependencies = [
 name = "datafusion-expr"
 version = "13.0.0"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow",
  "datafusion-common",
  "log",
@@ -641,7 +655,7 @@ dependencies = [
 name = "datafusion-physical-expr"
 version = "13.0.0"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow",
  "arrow-buffer",
  "arrow-schema",
@@ -820,23 +834,22 @@ dependencies = [
 
 [[package]]
 name = "fd-lock"
-version = "3.0.6"
+version = "3.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e11dcc7e4d79a8c89b9ab4c6f5c30b1fc4a83c420792da3542fd31179ed5f517"
+checksum = "0c93a581058d957dc4176875aad04f82f81613e6611d64aa1a9c755bdfb16711"
 dependencies = [
  "cfg-if",
  "rustix",
- "windows-sys 0.36.1",
+ "windows-sys",
 ]
 
 [[package]]
 name = "flatbuffers"
-version = "2.1.2"
+version = "22.9.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b428b715fdbdd1c364b84573b5fdc0f84f8e423661b9f398735278bc7f2b6a"
+checksum = "8ce016b9901aef3579617931fbb2df8fc9a9f7cb95a16eb8acc8148209bb9e70"
 dependencies = [
  "bitflags",
- "smallvec",
  "thiserror",
 ]
 
@@ -867,9 +880,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c"
+checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -882,9 +895,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050"
+checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -892,15 +905,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf"
+checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab"
+checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -909,15 +922,15 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68"
+checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17"
+checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -926,21 +939,21 @@ dependencies = [
 
 [[package]]
 name = "futures-sink"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56"
+checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
 
 [[package]]
 name = "futures-task"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1"
+checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
 
 [[package]]
 name = "futures-util"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90"
+checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -966,13 +979,15 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -983,9 +998,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
 name = "h2"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be"
+checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
 dependencies = [
  "bytes",
  "fnv",
@@ -1076,9 +1091,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.20"
+version = "0.14.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac"
+checksum = "abfba89e19b959ca163c7752ba59d737c1ceea53a5d31a149c805446fc958064"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1113,9 +1128,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.51"
+version = "0.1.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed"
+checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1172,9 +1187,9 @@ checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
 
 [[package]]
 name = "io-lifetimes"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ea37f355c05dde75b84bba2d767906ad522e97cd9e2eef2be7a4ab7fb442c06"
+checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"
 
 [[package]]
 name = "ipnet"
@@ -1293,9 +1308,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.135"
+version = "0.2.137"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
+checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
 
 [[package]]
 name = "libm"
@@ -1407,14 +1422,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys 0.36.1",
+ "windows-sys",
 ]
 
 [[package]]
@@ -1536,9 +1551,9 @@ dependencies = [
 
 [[package]]
 name = "num_cpus"
-version = "1.13.1"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
 dependencies = [
  "hermit-abi",
  "libc",
@@ -1574,9 +1589,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
 
 [[package]]
 name = "ordered-float"
@@ -1598,9 +1613,9 @@ dependencies = [
 
 [[package]]
 name = "os_str_bytes"
-version = "6.3.0"
+version = "6.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
+checksum = "3baf96e39c5359d2eb0dd6ccb42c62b91d9678aa68160d261b9e0ccbf9e9dea9"
 
 [[package]]
 name = "parking_lot"
@@ -1622,16 +1637,16 @@ dependencies = [
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-sys 0.42.0",
+ "windows-sys",
 ]
 
 [[package]]
 name = "parquet"
-version = "25.0.0"
+version = "26.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7758803135c32b243e52832473fc8f7c768a0a170b0851fb1bb37904c6b3550"
+checksum = "3bf8fa7ab6572791325a8595f55dc532dde88b996ae10a5ca8a2db746784ecc4"
 dependencies = [
- "ahash 0.8.0",
+ "ahash 0.8.1",
  "arrow",
  "base64",
  "brotli",
@@ -1643,7 +1658,6 @@ dependencies = [
  "lz4",
  "num",
  "num-bigint",
- "rand",
  "seq-macro",
  "snap",
  "thrift",
@@ -1677,9 +1691,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.25"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
 
 [[package]]
 name = "ppv-lite86"
@@ -1894,16 +1908,16 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.35.11"
+version = "0.35.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb2fda4666def1433b1b05431ab402e42a1084285477222b72d6c564c417cef"
+checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9"
 dependencies = [
  "bitflags",
  "errno",
  "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.36.1",
+ "windows-sys",
 ]
 
 [[package]]
@@ -2001,18 +2015,18 @@ checksum = "0772c5c30e1a0d91f6834f8e545c69281c099dfa9a3ac58d96a9fd629c8d4898"
 
 [[package]]
 name = "serde"
-version = "1.0.145"
+version = "1.0.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
+checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.145"
+version = "1.0.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
+checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2070,9 +2084,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
 
 [[package]]
 name = "snafu"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd726aec4ebad65756394ff89a9b9598793d4e30121cd71690244c1e497b3aee"
+checksum = "a152ba99b054b22972ee794cf04e5ef572da1229e33b65f3c57abbff0525a454"
 dependencies = [
  "doc-comment",
  "snafu-derive",
@@ -2080,9 +2094,9 @@ dependencies = [
 
 [[package]]
 name = "snafu-derive"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712529e9b0b014eabaa345b38e06032767e3dc393e8b017e853b1d7247094e74"
+checksum = "d5e79cdebbabaebb06a9bdbaedc7f159b410461f63611d4d0e3fb0fab8fed850"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -2166,9 +2180,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
 
 [[package]]
 name = "syn"
-version = "1.0.102"
+version = "1.0.103"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
+checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2200,9 +2214,9 @@ dependencies = [
 
 [[package]]
 name = "textwrap"
-version = "0.15.1"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 
 [[package]]
 name = "thiserror"
@@ -2599,19 +2613,6 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc 0.36.1",
- "windows_i686_gnu 0.36.1",
- "windows_i686_msvc 0.36.1",
- "windows_x86_64_gnu 0.36.1",
- "windows_x86_64_msvc 0.36.1",
-]
-
 [[package]]
 name = "windows-sys"
 version = "0.42.0"
@@ -2619,12 +2620,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
 dependencies = [
  "windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.0",
- "windows_i686_gnu 0.42.0",
- "windows_i686_msvc 0.42.0",
- "windows_x86_64_gnu 0.42.0",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
  "windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.0",
+ "windows_x86_64_msvc",
 ]
 
 [[package]]
@@ -2633,48 +2634,24 @@ version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
 
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
 [[package]]
 name = "windows_aarch64_msvc"
 version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
 
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
 [[package]]
 name = "windows_i686_gnu"
 version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
 
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
 [[package]]
 name = "windows_i686_msvc"
 version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
 
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
 [[package]]
 name = "windows_x86_64_gnu"
 version = "0.42.0"
@@ -2687,12 +2664,6 @@ version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
 
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
 [[package]]
 name = "windows_x86_64_msvc"
 version = "0.42.0"
diff --git a/datafusion-cli/Cargo.toml b/datafusion-cli/Cargo.toml
index 7367f2dc0..2b9e285b3 100644
--- a/datafusion-cli/Cargo.toml
+++ b/datafusion-cli/Cargo.toml
@@ -29,7 +29,7 @@ rust-version = "1.62"
 readme = "README.md"
 
 [dependencies]
-arrow = "25.0.0"
+arrow = "26.0.0"
 clap = { version = "3", features = ["derive", "cargo"] }
 datafusion = { path = "../datafusion/core", version = "13.0.0" }
 dirs = "4.0.0"
diff --git a/datafusion-examples/Cargo.toml b/datafusion-examples/Cargo.toml
index 9abf76b25..132b7b238 100644
--- a/datafusion-examples/Cargo.toml
+++ b/datafusion-examples/Cargo.toml
@@ -34,8 +34,8 @@ path = "examples/avro_sql.rs"
 required-features = ["datafusion/avro"]
 
 [dev-dependencies]
-arrow = "25.0.0"
-arrow-flight = "25.0.0"
+arrow = "26.0.0"
+arrow-flight = "26.0.0"
 async-trait = "0.1.41"
 datafusion = { path = "../datafusion/core" }
 datafusion-common = { path = "../datafusion/common" }
diff --git a/datafusion/common/Cargo.toml b/datafusion/common/Cargo.toml
index 9aedeac9e..b4f6bea85 100644
--- a/datafusion/common/Cargo.toml
+++ b/datafusion/common/Cargo.toml
@@ -40,11 +40,11 @@ pyarrow = ["pyo3", "arrow/pyarrow"]
 
 [dependencies]
 apache-avro = { version = "0.14", default-features = false, features = ["snappy"], optional = true }
-arrow = { version = "25.0.0", default-features = false }
+arrow = { version = "26.0.0", default-features = false }
 chrono = { version = "0.4", default-features = false }
 cranelift-module = { version = "0.89.0", optional = true }
 object_store = { version = "0.5.0", default-features = false, optional = true }
 ordered-float = "3.0"
-parquet = { version = "25.0.0", default-features = false, optional = true }
+parquet = { version = "26.0.0", default-features = false, optional = true }
 pyo3 = { version = "0.17.1", optional = true }
 sqlparser = "0.26"
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index 83c224dca..88f05cca4 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -56,8 +56,7 @@ unicode_expressions = ["datafusion-physical-expr/regex_expressions", "datafusion
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
 apache-avro = { version = "0.14", optional = true }
-arrow = { version = "25.0.0", features = ["prettyprint"] }
-
+arrow = { version = "26.0.0", features = ["prettyprint"] }
 async-compression = { version = "0.3.14", features = ["bzip2", "gzip", "futures-io", "tokio"] }
 async-trait = "0.1.41"
 bytes = "1.1"
@@ -82,7 +81,7 @@ num_cpus = "1.13.0"
 object_store = "0.5.0"
 ordered-float = "3.0"
 parking_lot = "0.12"
-parquet = { version = "25.0.0", features = ["arrow", "async"] }
+parquet = { version = "26.0.0", features = ["arrow", "async"] }
 paste = "^1.0"
 percent-encoding = "2.2.0"
 pin-project-lite = "^0.2.7"
@@ -99,7 +98,7 @@ url = "2.2"
 uuid = { version = "1.0", features = ["v4"] }
 
 [dev-dependencies]
-arrow = { version = "25.0.0", features = ["prettyprint", "dyn_cmp_dict"] }
+arrow = { version = "26.0.0", features = ["prettyprint", "dyn_cmp_dict"] }
 async-trait = "0.1.53"
 criterion = "0.4"
 csv = "1.1.6"
diff --git a/datafusion/core/src/config.rs b/datafusion/core/src/config.rs
index 8277cef31..3b00f4ab1 100644
--- a/datafusion/core/src/config.rs
+++ b/datafusion/core/src/config.rs
@@ -223,7 +223,7 @@ impl BuiltInConfigs {
                 "The session time zone which some function require \
                 e.g. EXTRACT(HOUR from SOME_TIME) shift the underline datetime according to the time zone,
                 then extract the hour.",
-                Some("UTC".into()),
+                Some("+00:00".into()),
             ),
             ConfigDefinition::new_bool(
                 OPT_PARQUET_PUSHDOWN_FILTERS,
diff --git a/datafusion/core/src/datasource/file_format/avro.rs b/datafusion/core/src/datasource/file_format/avro.rs
index c2007dc38..4a87eee93 100644
--- a/datafusion/core/src/datasource/file_format/avro.rs
+++ b/datafusion/core/src/datasource/file_format/avro.rs
@@ -172,14 +172,14 @@ mod tests {
             "+----+----------+-------------+--------------+---------+------------+-----------+------------+------------------+------------+---------------------+",
             "| id | bool_col | tinyint_col | smallint_col | int_col | bigint_col | float_col | double_col | date_string_col  | string_col | timestamp_col       |",
             "+----+----------+-------------+--------------+---------+------------+-----------+------------+------------------+------------+---------------------+",
-            "| 4  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30332f30312f3039 | 30         | 2009-03-01 00:00:00 |",
-            "| 5  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30332f30312f3039 | 31         | 2009-03-01 00:01:00 |",
-            "| 6  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30342f30312f3039 | 30         | 2009-04-01 00:00:00 |",
-            "| 7  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30342f30312f3039 | 31         | 2009-04-01 00:01:00 |",
-            "| 2  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30322f30312f3039 | 30         | 2009-02-01 00:00:00 |",
-            "| 3  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30322f30312f3039 | 31         | 2009-02-01 00:01:00 |",
-            "| 0  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30312f30312f3039 | 30         | 2009-01-01 00:00:00 |",
-            "| 1  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30312f30312f3039 | 31         | 2009-01-01 00:01:00 |",
+            "| 4  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30332f30312f3039 | 30         | 2009-03-01T00:00:00 |",
+            "| 5  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30332f30312f3039 | 31         | 2009-03-01T00:01:00 |",
+            "| 6  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30342f30312f3039 | 30         | 2009-04-01T00:00:00 |",
+            "| 7  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30342f30312f3039 | 31         | 2009-04-01T00:01:00 |",
+            "| 2  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30322f30312f3039 | 30         | 2009-02-01T00:00:00 |",
+            "| 3  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30322f30312f3039 | 31         | 2009-02-01T00:01:00 |",
+            "| 0  | true     | 0           | 0            | 0       | 0          | 0         | 0          | 30312f30312f3039 | 30         | 2009-01-01T00:00:00 |",
+            "| 1  | false    | 1           | 1            | 1       | 10         | 1.1       | 10.1       | 30312f30312f3039 | 31         | 2009-01-01T00:01:00 |",
             "+----+----------+-------------+--------------+---------+------------+-----------+------------+------------------+------------+---------------------+",
         ];
 
diff --git a/datafusion/core/src/datasource/listing/table.rs b/datafusion/core/src/datasource/listing/table.rs
index 61ee1a028..61e13abb5 100644
--- a/datafusion/core/src/datasource/listing/table.rs
+++ b/datafusion/core/src/datasource/listing/table.rs
@@ -17,7 +17,7 @@
 
 //! The table implementation.
 
-use ahash::HashMap;
+use hashbrown::HashMap;
 use std::str::FromStr;
 use std::{any::Any, sync::Arc};
 
diff --git a/datafusion/core/src/physical_optimizer/pruning.rs b/datafusion/core/src/physical_optimizer/pruning.rs
index 0907efc9c..3adf0ad7b 100644
--- a/datafusion/core/src/physical_optimizer/pruning.rs
+++ b/datafusion/core/src/physical_optimizer/pruning.rs
@@ -1184,7 +1184,7 @@ mod tests {
             "+-------------------------------+",
             "| s1_min                        |",
             "+-------------------------------+",
-            "| 1970-01-01 00:00:00.000000010 |",
+            "| 1970-01-01T00:00:00.000000010 |",
             "+-------------------------------+",
         ];
 
diff --git a/datafusion/core/src/physical_plan/sorts/sort_preserving_merge.rs b/datafusion/core/src/physical_plan/sorts/sort_preserving_merge.rs
index a8c6fe4e6..17dea38c0 100644
--- a/datafusion/core/src/physical_plan/sorts/sort_preserving_merge.rs
+++ b/datafusion/core/src/physical_plan/sorts/sort_preserving_merge.rs
@@ -672,16 +672,16 @@ mod tests {
                 "+----+---+-------------------------------+",
                 "| a  | b | c                             |",
                 "+----+---+-------------------------------+",
-                "| 1  | a | 1970-01-01 00:00:00.000000008 |",
-                "| 10 | b | 1970-01-01 00:00:00.000000004 |",
-                "| 2  | c | 1970-01-01 00:00:00.000000007 |",
-                "| 20 | d | 1970-01-01 00:00:00.000000006 |",
-                "| 7  | e | 1970-01-01 00:00:00.000000006 |",
-                "| 70 | f | 1970-01-01 00:00:00.000000002 |",
-                "| 9  | g | 1970-01-01 00:00:00.000000005 |",
-                "| 90 | h | 1970-01-01 00:00:00.000000002 |",
-                "| 30 | j | 1970-01-01 00:00:00.000000006 |", // input b2 before b1
-                "| 3  | j | 1970-01-01 00:00:00.000000008 |",
+                "| 1  | a | 1970-01-01T00:00:00.000000008 |",
+                "| 10 | b | 1970-01-01T00:00:00.000000004 |",
+                "| 2  | c | 1970-01-01T00:00:00.000000007 |",
+                "| 20 | d | 1970-01-01T00:00:00.000000006 |",
+                "| 7  | e | 1970-01-01T00:00:00.000000006 |",
+                "| 70 | f | 1970-01-01T00:00:00.000000002 |",
+                "| 9  | g | 1970-01-01T00:00:00.000000005 |",
+                "| 90 | h | 1970-01-01T00:00:00.000000002 |",
+                "| 30 | j | 1970-01-01T00:00:00.000000006 |", // input b2 before b1
+                "| 3  | j | 1970-01-01T00:00:00.000000008 |",
                 "+----+---+-------------------------------+",
             ],
             task_ctx,
@@ -721,16 +721,16 @@ mod tests {
                 "+-----+---+-------------------------------+",
                 "| a   | b | c                             |",
                 "+-----+---+-------------------------------+",
-                "| 1   | a | 1970-01-01 00:00:00.000000008 |",
-                "| 2   | b | 1970-01-01 00:00:00.000000007 |",
-                "| 70  | c | 1970-01-01 00:00:00.000000004 |",
-                "| 7   | c | 1970-01-01 00:00:00.000000006 |",
-                "| 9   | d | 1970-01-01 00:00:00.000000005 |",
-                "| 90  | d | 1970-01-01 00:00:00.000000006 |",
-                "| 30  | e | 1970-01-01 00:00:00.000000002 |",
-                "| 3   | e | 1970-01-01 00:00:00.000000008 |",
-                "| 100 | f | 1970-01-01 00:00:00.000000002 |",
-                "| 110 | g | 1970-01-01 00:00:00.000000006 |",
+                "| 1   | a | 1970-01-01T00:00:00.000000008 |",
+                "| 2   | b | 1970-01-01T00:00:00.000000007 |",
+                "| 70  | c | 1970-01-01T00:00:00.000000004 |",
+                "| 7   | c | 1970-01-01T00:00:00.000000006 |",
+                "| 9   | d | 1970-01-01T00:00:00.000000005 |",
+                "| 90  | d | 1970-01-01T00:00:00.000000006 |",
+                "| 30  | e | 1970-01-01T00:00:00.000000002 |",
+                "| 3   | e | 1970-01-01T00:00:00.000000008 |",
+                "| 100 | f | 1970-01-01T00:00:00.000000002 |",
+                "| 110 | g | 1970-01-01T00:00:00.000000006 |",
                 "+-----+---+-------------------------------+",
             ],
             task_ctx,
@@ -770,16 +770,16 @@ mod tests {
                 "+----+---+-------------------------------+",
                 "| a  | b | c                             |",
                 "+----+---+-------------------------------+",
-                "| 1  | a | 1970-01-01 00:00:00.000000008 |",
-                "| 2  | b | 1970-01-01 00:00:00.000000007 |",
-                "| 7  | c | 1970-01-01 00:00:00.000000006 |",
-                "| 9  | d | 1970-01-01 00:00:00.000000005 |",
-                "| 3  | e | 1970-01-01 00:00:00.000000008 |",
-                "| 10 | f | 1970-01-01 00:00:00.000000004 |",
-                "| 20 | g | 1970-01-01 00:00:00.000000006 |",
-                "| 70 | h | 1970-01-01 00:00:00.000000002 |",
-                "| 90 | i | 1970-01-01 00:00:00.000000002 |",
-                "| 30 | j | 1970-01-01 00:00:00.000000006 |",
+                "| 1  | a | 1970-01-01T00:00:00.000000008 |",
+                "| 2  | b | 1970-01-01T00:00:00.000000007 |",
+                "| 7  | c | 1970-01-01T00:00:00.000000006 |",
+                "| 9  | d | 1970-01-01T00:00:00.000000005 |",
+                "| 3  | e | 1970-01-01T00:00:00.000000008 |",
+                "| 10 | f | 1970-01-01T00:00:00.000000004 |",
+                "| 20 | g | 1970-01-01T00:00:00.000000006 |",
+                "| 70 | h | 1970-01-01T00:00:00.000000002 |",
+                "| 90 | i | 1970-01-01T00:00:00.000000002 |",
+                "| 30 | j | 1970-01-01T00:00:00.000000006 |",
                 "+----+---+-------------------------------+",
             ],
             task_ctx,
@@ -831,21 +831,21 @@ mod tests {
                 "+-----+---+-------------------------------+",
                 "| a   | b | c                             |",
                 "+-----+---+-------------------------------+",
-                "| 1   | a | 1970-01-01 00:00:00.000000008 |",
-                "| 2   | b | 1970-01-01 00:00:00.000000007 |",
-                "| 7   | c | 1970-01-01 00:00:00.000000006 |",
-                "| 9   | d | 1970-01-01 00:00:00.000000005 |",
-                "| 10  | e | 1970-01-01 00:00:00.000000040 |",
-                "| 100 | f | 1970-01-01 00:00:00.000000004 |",
-                "| 3   | f | 1970-01-01 00:00:00.000000008 |",
-                "| 200 | g | 1970-01-01 00:00:00.000000006 |",
-                "| 20  | g | 1970-01-01 00:00:00.000000060 |",
-                "| 700 | h | 1970-01-01 00:00:00.000000002 |",
-                "| 70  | h | 1970-01-01 00:00:00.000000020 |",
-                "| 900 | i | 1970-01-01 00:00:00.000000002 |",
-                "| 90  | i | 1970-01-01 00:00:00.000000020 |",
-                "| 300 | j | 1970-01-01 00:00:00.000000006 |",
-                "| 30  | j | 1970-01-01 00:00:00.000000060 |",
+                "| 1   | a | 1970-01-01T00:00:00.000000008 |",
+                "| 2   | b | 1970-01-01T00:00:00.000000007 |",
+                "| 7   | c | 1970-01-01T00:00:00.000000006 |",
+                "| 9   | d | 1970-01-01T00:00:00.000000005 |",
+                "| 10  | e | 1970-01-01T00:00:00.000000040 |",
+                "| 100 | f | 1970-01-01T00:00:00.000000004 |",
+                "| 3   | f | 1970-01-01T00:00:00.000000008 |",
+                "| 200 | g | 1970-01-01T00:00:00.000000006 |",
+                "| 20  | g | 1970-01-01T00:00:00.000000060 |",
+                "| 700 | h | 1970-01-01T00:00:00.000000002 |",
+                "| 70  | h | 1970-01-01T00:00:00.000000020 |",
+                "| 900 | i | 1970-01-01T00:00:00.000000002 |",
+                "| 90  | i | 1970-01-01T00:00:00.000000020 |",
+                "| 300 | j | 1970-01-01T00:00:00.000000006 |",
+                "| 30  | j | 1970-01-01T00:00:00.000000060 |",
                 "+-----+---+-------------------------------+",
             ],
             task_ctx,
@@ -1155,16 +1155,16 @@ mod tests {
                 "+---+---+-------------------------------+",
                 "| a | b | c                             |",
                 "+---+---+-------------------------------+",
-                "| 1 |   | 1970-01-01 00:00:00.000000008 |",
-                "| 1 |   | 1970-01-01 00:00:00.000000008 |",
+                "| 1 |   | 1970-01-01T00:00:00.000000008 |",
+                "| 1 |   | 1970-01-01T00:00:00.000000008 |",
                 "| 2 | a |                               |",
-                "| 7 | b | 1970-01-01 00:00:00.000000006 |",
+                "| 7 | b | 1970-01-01T00:00:00.000000006 |",
                 "| 2 | b |                               |",
                 "| 9 | d |                               |",
-                "| 3 | e | 1970-01-01 00:00:00.000000004 |",
-                "| 3 | g | 1970-01-01 00:00:00.000000005 |",
+                "| 3 | e | 1970-01-01T00:00:00.000000004 |",
+                "| 3 | g | 1970-01-01T00:00:00.000000005 |",
                 "| 4 | h |                               |",
-                "| 5 | i | 1970-01-01 00:00:00.000000004 |",
+                "| 5 | i | 1970-01-01T00:00:00.000000004 |",
                 "+---+---+-------------------------------+",
             ],
             collected.as_slice()
diff --git a/datafusion/core/tests/parquet_pruning.rs b/datafusion/core/tests/parquet_pruning.rs
index b70e05c66..71503d249 100644
--- a/datafusion/core/tests/parquet_pruning.rs
+++ b/datafusion/core/tests/parquet_pruning.rs
@@ -822,10 +822,10 @@ fn make_timestamp_batch(offset: Duration) -> RecordBatch {
         .map(|(i, _)| format!("Row {} + {}", i, offset))
         .collect::<Vec<_>>();
 
-    let arr_nanos = TimestampNanosecondArray::from_opt_vec(ts_nanos, None);
-    let arr_micros = TimestampMicrosecondArray::from_opt_vec(ts_micros, None);
-    let arr_millis = TimestampMillisecondArray::from_opt_vec(ts_millis, None);
-    let arr_seconds = TimestampSecondArray::from_opt_vec(ts_seconds, None);
+    let arr_nanos = TimestampNanosecondArray::from(ts_nanos);
+    let arr_micros = TimestampMicrosecondArray::from(ts_micros);
+    let arr_millis = TimestampMillisecondArray::from(ts_millis);
+    let arr_seconds = TimestampSecondArray::from(ts_seconds);
 
     let names = names.iter().map(|s| s.as_str()).collect::<Vec<_>>();
     let arr_names = StringArray::from(names);
diff --git a/datafusion/core/tests/sql/aggregates.rs b/datafusion/core/tests/sql/aggregates.rs
index 1d2e41254..8f266a29f 100644
--- a/datafusion/core/tests/sql/aggregates.rs
+++ b/datafusion/core/tests/sql/aggregates.rs
@@ -1475,7 +1475,7 @@ async fn aggregate_timestamps_min() -> Result<()> {
         "+----------------------------+----------------------------+-------------------------+---------------------+",
         "| MIN(t.nanos)               | MIN(t.micros)              | MIN(t.millis)           | MIN(t.secs)         |",
         "+----------------------------+----------------------------+-------------------------+---------------------+",
-        "| 2011-12-13 11:13:10.123450 | 2011-12-13 11:13:10.123450 | 2011-12-13 11:13:10.123 | 2011-12-13 11:13:10 |",
+        "| 2011-12-13T11:13:10.123450 | 2011-12-13T11:13:10.123450 | 2011-12-13T11:13:10.123 | 2011-12-13T11:13:10 |",
         "+----------------------------+----------------------------+-------------------------+---------------------+",
     ];
     assert_batches_sorted_eq!(expected, &results);
@@ -1498,7 +1498,7 @@ async fn aggregate_timestamps_max() -> Result<()> {
         "+-------------------------+-------------------------+-------------------------+---------------------+",
         "| MAX(t.nanos)            | MAX(t.micros)           | MAX(t.millis)           | MAX(t.secs)         |",
         "+-------------------------+-------------------------+-------------------------+---------------------+",
-        "| 2021-01-01 05:11:10.432 | 2021-01-01 05:11:10.432 | 2021-01-01 05:11:10.432 | 2021-01-01 05:11:10 |",
+        "| 2021-01-01T05:11:10.432 | 2021-01-01T05:11:10.432 | 2021-01-01T05:11:10.432 | 2021-01-01T05:11:10 |",
         "+-------------------------+-------------------------+-------------------------+---------------------+",
     ];
     assert_batches_sorted_eq!(expected, &results);
diff --git a/datafusion/core/tests/sql/arrow_typeof.rs b/datafusion/core/tests/sql/arrow_typeof.rs
index 9f971f27b..4477ad53c 100644
--- a/datafusion/core/tests/sql/arrow_typeof.rs
+++ b/datafusion/core/tests/sql/arrow_typeof.rs
@@ -110,7 +110,7 @@ async fn arrow_typeof_timestamp_utc() -> Result<()> {
     let ctx = SessionContext::new();
     let sql = "SELECT arrow_typeof(now())";
     let actual = execute(&ctx, sql).await;
-    let expected = "Timestamp(Nanosecond, Some(\"UTC\"))";
+    let expected = "Timestamp(Nanosecond, Some(\"+00:00\"))";
     assert_eq!(expected, &actual[0][0]);
 
     Ok(())
diff --git a/datafusion/core/tests/sql/create_drop.rs b/datafusion/core/tests/sql/create_drop.rs
index 567ee022b..73dd53c2c 100644
--- a/datafusion/core/tests/sql/create_drop.rs
+++ b/datafusion/core/tests/sql/create_drop.rs
@@ -271,8 +271,8 @@ async fn create_external_table_with_timestamps() {
         "+--------+-------------------------+",
         "| name   | ts                      |",
         "+--------+-------------------------+",
-        "| Andrew | 2018-11-13 17:11:10.011 |",
-        "| Jorge  | 2018-12-13 12:12:10.011 |",
+        "| Andrew | 2018-11-13T17:11:10.011 |",
+        "| Jorge  | 2018-12-13T12:12:10.011 |",
         "+--------+-------------------------+",
     ];
     assert_batches_sorted_eq!(expected, &result);
diff --git a/datafusion/core/tests/sql/group_by.rs b/datafusion/core/tests/sql/group_by.rs
index e71d6210f..057673dda 100644
--- a/datafusion/core/tests/sql/group_by.rs
+++ b/datafusion/core/tests/sql/group_by.rs
@@ -527,8 +527,8 @@ async fn group_by_date_trunc() -> Result<()> {
         "+---------------------+--------------+",
         "| week                | SUM(test.c2) |",
         "+---------------------+--------------+",
-        "| 2020-12-07 00:00:00 | 24           |",
-        "| 2020-12-14 00:00:00 | 156          |",
+        "| 2020-12-07T00:00:00 | 24           |",
+        "| 2020-12-14T00:00:00 | 156          |",
         "+---------------------+--------------+",
     ];
     assert_batches_sorted_eq!(expected, &results);
diff --git a/datafusion/core/tests/sql/information_schema.rs b/datafusion/core/tests/sql/information_schema.rs
index 3033f50ed..836e70d4f 100644
--- a/datafusion/core/tests/sql/information_schema.rs
+++ b/datafusion/core/tests/sql/information_schema.rs
@@ -519,10 +519,7 @@ fn table_with_many_types() -> Arc<dyn TableProvider> {
             Arc::new(LargeStringArray::from(vec![Some("bar")])),
             Arc::new(BinaryArray::from_slice([b"foo" as &[u8]])),
             Arc::new(LargeBinaryArray::from_slice([b"foo" as &[u8]])),
-            Arc::new(TimestampNanosecondArray::from_opt_vec(
-                vec![Some(123)],
-                None,
-            )),
+            Arc::new(TimestampNanosecondArray::from(vec![Some(123)])),
         ],
     )
     .unwrap();
@@ -706,7 +703,7 @@ async fn show_all() {
         "| datafusion.execution.parquet.enable_page_index  | false   |",
         "| datafusion.execution.parquet.pushdown_filters   | false   |",
         "| datafusion.execution.parquet.reorder_filters    | false   |",
-        "| datafusion.execution.time_zone                  | UTC     |",
+        "| datafusion.execution.time_zone                  | +00:00  |",
         "| datafusion.explain.logical_plan_only            | false   |",
         "| datafusion.explain.physical_plan_only           | false   |",
         "| datafusion.optimizer.filter_null_join_keys      | false   |",
@@ -730,7 +727,7 @@ async fn show_time_zone_default_utc() {
         "+--------------------------------+---------+",
         "| name                           | setting |",
         "+--------------------------------+---------+",
-        "| datafusion.execution.time_zone | UTC     |",
+        "| datafusion.execution.time_zone | +00:00  |",
         "+--------------------------------+---------+",
     ];
 
@@ -749,7 +746,7 @@ async fn show_timezone_default_utc() {
         "+--------------------------------+---------+",
         "| name                           | setting |",
         "+--------------------------------+---------+",
-        "| datafusion.execution.time_zone | UTC     |",
+        "| datafusion.execution.time_zone | +00:00  |",
         "+--------------------------------+---------+",
     ];
 
diff --git a/datafusion/core/tests/sql/joins.rs b/datafusion/core/tests/sql/joins.rs
index 3f939e353..ae1e89646 100644
--- a/datafusion/core/tests/sql/joins.rs
+++ b/datafusion/core/tests/sql/joins.rs
@@ -768,9 +768,9 @@ async fn test_join_timestamp() -> Result<()> {
         "+-------------------------------+-------------------------------+",
         "| time                          | time                          |",
         "+-------------------------------+-------------------------------+",
-        "| 1970-01-02 12:39:24.190213133 | 1970-01-02 12:39:24.190213133 |",
-        "| 1970-01-02 12:39:24.190213134 | 1970-01-02 12:39:24.190213134 |",
-        "| 1970-01-02 12:39:24.190213135 | 1970-01-02 12:39:24.190213135 |",
+        "| 1970-01-02T12:39:24.190213133 | 1970-01-02T12:39:24.190213133 |",
+        "| 1970-01-02T12:39:24.190213134 | 1970-01-02T12:39:24.190213134 |",
+        "| 1970-01-02T12:39:24.190213135 | 1970-01-02T12:39:24.190213135 |",
         "+-------------------------------+-------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1025,9 +1025,9 @@ async fn join_timestamp() -> Result<()> {
         "+-------------------------------+----------------------------+-------------------------+---------------------+-------+-------------------------------+----------------------------+-------------------------+---------------------+-------+",
         "| nanos                         | micros                     | millis                  | secs                | name  | nanos                         | micros                     | millis                  | secs                | name  |",
         "+-------------------------------+----------------------------+-------------------------+---------------------+-------+-------------------------------+----------------------------+-------------------------+---------------------+-------+",
-        "| 2011-12-13 11:13:10.123450    | 2011-12-13 11:13:10.123450 | 2011-12-13 11:13:10.123 | 2011-12-13 11:13:10 | Row 1 | 2011-12-13 11:13:10.123450    | 2011-12-13 11:13:10.123450 | 2011-12-13 11:13:10.123 | 2011-12-13 11:13:10 | Row 1 |",
-        "| 2018-11-13 17:11:10.011375885 | 2018-11-13 17:11:10.011375 | 2018-11-13 17:11:10.011 | 2018-11-13 17:11:10 | Row 0 | 2018-11-13 17:11:10.011375885 | 2018-11-13 17:11:10.011375 | 2018-11-13 17:11:10.011 | 2018-11-13 17:11:10 | Row 0 |",
-        "| 2021-01-01 05:11:10.432       | 2021-01-01 05:11:10.432    | 2021-01-01 05:11:10.432 | 2021-01-01 05:11:10 | Row 3 | 2021-01-01 05:11:10.432       | 2021-01-01 05:11:10.432    | 2021-01-01 05:11:10.432 | 2021-01-01 05:11:10 | Row 3 |",
+        "| 2011-12-13T11:13:10.123450    | 2011-12-13T11:13:10.123450 | 2011-12-13T11:13:10.123 | 2011-12-13T11:13:10 | Row 1 | 2011-12-13T11:13:10.123450    | 2011-12-13T11:13:10.123450 | 2011-12-13T11:13:10.123 | 2011-12-13T11:13:10 | Row 1 |",
+        "| 2018-11-13T17:11:10.011375885 | 2018-11-13T17:11:10.011375 | 2018-11-13T17:11:10.011 | 2018-11-13T17:11:10 | Row 0 | 2018-11-13T17:11:10.011375885 | 2018-11-13T17:11:10.011375 | 2018-11-13T17:11:10.011 | 2018-11-13T17:11:10 | Row 0 |",
+        "| 2021-01-01T05:11:10.432       | 2021-01-01T05:11:10.432    | 2021-01-01T05:11:10.432 | 2021-01-01T05:11:10 | Row 3 | 2021-01-01T05:11:10.432       | 2021-01-01T05:11:10.432    | 2021-01-01T05:11:10.432 | 2021-01-01T05:11:10 | Row 3 |",
         "+-------------------------------+----------------------------+-------------------------+---------------------+-------+-------------------------------+----------------------------+-------------------------+---------------------+-------+",
     ];
 
diff --git a/datafusion/core/tests/sql/mod.rs b/datafusion/core/tests/sql/mod.rs
index be86d25c7..9c78bb325 100644
--- a/datafusion/core/tests/sql/mod.rs
+++ b/datafusion/core/tests/sql/mod.rs
@@ -983,14 +983,14 @@ async fn register_alltypes_parquet(ctx: &SessionContext) {
 
 fn make_timestamp_table<A>() -> Result<Arc<MemTable>>
 where
-    A: ArrowTimestampType,
+    A: ArrowTimestampType<Native = i64>,
 {
     make_timestamp_tz_table::<A>(None)
 }
 
 fn make_timestamp_tz_table<A>(tz: Option<String>) -> Result<Arc<MemTable>>
 where
-    A: ArrowTimestampType,
+    A: ArrowTimestampType<Native = i64>,
 {
     let schema = Arc::new(Schema::new(vec![
         Field::new(
@@ -1014,7 +1014,7 @@ where
         1599565349190855000 / divisor,    // 2020-09-08T11:42:29.190855+00:00
     ]; // 2020-09-08T11:42:29.190855+00:00
 
-    let array = PrimitiveArray::<A>::from_vec(timestamps, tz);
+    let array = PrimitiveArray::<A>::from_iter_values(timestamps).with_timezone_opt(tz);
 
     let data = RecordBatch::try_new(
         schema.clone(),
@@ -1152,10 +1152,10 @@ pub fn make_timestamps() -> RecordBatch {
         .map(|(i, _)| format!("Row {}", i))
         .collect::<Vec<_>>();
 
-    let arr_nanos = TimestampNanosecondArray::from_opt_vec(ts_nanos, None);
-    let arr_micros = TimestampMicrosecondArray::from_opt_vec(ts_micros, None);
-    let arr_millis = TimestampMillisecondArray::from_opt_vec(ts_millis, None);
-    let arr_secs = TimestampSecondArray::from_opt_vec(ts_secs, None);
+    let arr_nanos = TimestampNanosecondArray::from(ts_nanos);
+    let arr_micros = TimestampMicrosecondArray::from(ts_micros);
+    let arr_millis = TimestampMillisecondArray::from(ts_millis);
+    let arr_secs = TimestampSecondArray::from(ts_secs);
 
     let names = names.iter().map(|s| s.as_str()).collect::<Vec<_>>();
     let arr_names = StringArray::from(names);
diff --git a/datafusion/core/tests/sql/timestamp.rs b/datafusion/core/tests/sql/timestamp.rs
index e2ee43332..7fb8e109f 100644
--- a/datafusion/core/tests/sql/timestamp.rs
+++ b/datafusion/core/tests/sql/timestamp.rs
@@ -41,9 +41,9 @@ async fn query_cast_timestamp_millis() -> Result<()> {
         "+--------------------------+",
         "| totimestampmillis(t1.ts) |",
         "+--------------------------+",
-        "| 2009-03-01 00:00:00      |",
-        "| 2009-03-01 00:01:00      |",
-        "| 2009-04-01 00:00:00      |",
+        "| 2009-03-01T00:00:00      |",
+        "| 2009-03-01T00:01:00      |",
+        "| 2009-04-01T00:00:00      |",
         "+--------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -72,9 +72,9 @@ async fn query_cast_timestamp_micros() -> Result<()> {
         "+--------------------------+",
         "| totimestampmicros(t1.ts) |",
         "+--------------------------+",
-        "| 2009-03-01 00:00:00      |",
-        "| 2009-03-01 00:01:00      |",
-        "| 2009-04-01 00:00:00      |",
+        "| 2009-03-01T00:00:00      |",
+        "| 2009-03-01T00:01:00      |",
+        "| 2009-04-01T00:00:00      |",
         "+--------------------------+",
     ];
 
@@ -102,9 +102,9 @@ async fn query_cast_timestamp_seconds() -> Result<()> {
         "+---------------------------+",
         "| totimestampseconds(t1.ts) |",
         "+---------------------------+",
-        "| 2009-03-01 00:00:00       |",
-        "| 2009-03-01 00:01:00       |",
-        "| 2009-04-01 00:00:00       |",
+        "| 2009-03-01T00:00:00       |",
+        "| 2009-03-01T00:01:00       |",
+        "| 2009-04-01T00:00:00       |",
         "+---------------------------+",
     ];
 
@@ -125,9 +125,9 @@ async fn query_cast_timestamp_nanos_to_others() -> Result<()> {
         "+-------------------------------+",
         "| totimestampmillis(ts_data.ts) |",
         "+-------------------------------+",
-        "| 2020-09-08 13:42:29.190       |",
-        "| 2020-09-08 12:42:29.190       |",
-        "| 2020-09-08 11:42:29.190       |",
+        "| 2020-09-08T13:42:29.190       |",
+        "| 2020-09-08T12:42:29.190       |",
+        "| 2020-09-08T11:42:29.190       |",
         "+-------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -139,9 +139,9 @@ async fn query_cast_timestamp_nanos_to_others() -> Result<()> {
         "+-------------------------------+",
         "| totimestampmicros(ts_data.ts) |",
         "+-------------------------------+",
-        "| 2020-09-08 13:42:29.190855    |",
-        "| 2020-09-08 12:42:29.190855    |",
-        "| 2020-09-08 11:42:29.190855    |",
+        "| 2020-09-08T13:42:29.190855    |",
+        "| 2020-09-08T12:42:29.190855    |",
+        "| 2020-09-08T11:42:29.190855    |",
         "+-------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -152,9 +152,9 @@ async fn query_cast_timestamp_nanos_to_others() -> Result<()> {
         "+--------------------------------+",
         "| totimestampseconds(ts_data.ts) |",
         "+--------------------------------+",
-        "| 2020-09-08 13:42:29            |",
-        "| 2020-09-08 12:42:29            |",
-        "| 2020-09-08 11:42:29            |",
+        "| 2020-09-08T13:42:29            |",
+        "| 2020-09-08T12:42:29            |",
+        "| 2020-09-08T11:42:29            |",
         "+--------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -174,9 +174,9 @@ async fn query_cast_timestamp_seconds_to_others() -> Result<()> {
         "+-------------------------------+",
         "| totimestampmillis(ts_secs.ts) |",
         "+-------------------------------+",
-        "| 2020-09-08 13:42:29           |",
-        "| 2020-09-08 12:42:29           |",
-        "| 2020-09-08 11:42:29           |",
+        "| 2020-09-08T13:42:29           |",
+        "| 2020-09-08T12:42:29           |",
+        "| 2020-09-08T11:42:29           |",
         "+-------------------------------+",
     ];
 
@@ -189,9 +189,9 @@ async fn query_cast_timestamp_seconds_to_others() -> Result<()> {
         "+-------------------------------+",
         "| totimestampmicros(ts_secs.ts) |",
         "+-------------------------------+",
-        "| 2020-09-08 13:42:29           |",
-        "| 2020-09-08 12:42:29           |",
-        "| 2020-09-08 11:42:29           |",
+        "| 2020-09-08T13:42:29           |",
+        "| 2020-09-08T12:42:29           |",
+        "| 2020-09-08T11:42:29           |",
         "+-------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -203,9 +203,9 @@ async fn query_cast_timestamp_seconds_to_others() -> Result<()> {
         "+-------------------------+",
         "| totimestamp(ts_secs.ts) |",
         "+-------------------------+",
-        "| 2020-09-08 13:42:29     |",
-        "| 2020-09-08 12:42:29     |",
-        "| 2020-09-08 11:42:29     |",
+        "| 2020-09-08T13:42:29     |",
+        "| 2020-09-08T12:42:29     |",
+        "| 2020-09-08T11:42:29     |",
         "+-------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -227,9 +227,9 @@ async fn query_cast_timestamp_micros_to_others() -> Result<()> {
         "+---------------------------------+",
         "| totimestampmillis(ts_micros.ts) |",
         "+---------------------------------+",
-        "| 2020-09-08 13:42:29.190         |",
-        "| 2020-09-08 12:42:29.190         |",
-        "| 2020-09-08 11:42:29.190         |",
+        "| 2020-09-08T13:42:29.190         |",
+        "| 2020-09-08T12:42:29.190         |",
+        "| 2020-09-08T11:42:29.190         |",
         "+---------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -241,9 +241,9 @@ async fn query_cast_timestamp_micros_to_others() -> Result<()> {
         "+----------------------------------+",
         "| totimestampseconds(ts_micros.ts) |",
         "+----------------------------------+",
-        "| 2020-09-08 13:42:29              |",
-        "| 2020-09-08 12:42:29              |",
-        "| 2020-09-08 11:42:29              |",
+        "| 2020-09-08T13:42:29              |",
+        "| 2020-09-08T12:42:29              |",
+        "| 2020-09-08T11:42:29              |",
         "+----------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -255,9 +255,9 @@ async fn query_cast_timestamp_micros_to_others() -> Result<()> {
         "+----------------------------+",
         "| totimestamp(ts_micros.ts)  |",
         "+----------------------------+",
-        "| 2020-09-08 13:42:29.190855 |",
-        "| 2020-09-08 12:42:29.190855 |",
-        "| 2020-09-08 11:42:29.190855 |",
+        "| 2020-09-08T13:42:29.190855 |",
+        "| 2020-09-08T12:42:29.190855 |",
+        "| 2020-09-08T11:42:29.190855 |",
         "+----------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -284,9 +284,9 @@ async fn query_cast_timestamp_from_unixtime() -> Result<()> {
         "+---------------------+",
         "| fromunixtime(t1.ts) |",
         "+---------------------+",
-        "| 2009-03-01 00:00:00 |",
-        "| 2009-03-01 00:01:00 |",
-        "| 2009-04-01 00:00:00 |",
+        "| 2009-03-01T00:00:00 |",
+        "| 2009-03-01T00:01:00 |",
+        "| 2009-04-01T00:00:00 |",
         "+---------------------+",
     ];
 
@@ -420,9 +420,8 @@ async fn test_current_timestamp_expressions() -> Result<()> {
     let actual = execute(&ctx, "SELECT NOW(), NOW() as t2").await;
     let res1 = actual[0][0].as_str();
     let res2 = actual[0][1].as_str();
-    let t3 = chrono::Utc::now().timestamp();
-    let t2_naive =
-        chrono::NaiveDateTime::parse_from_str(res1, "%Y-%m-%d %H:%M:%S%.6f").unwrap();
+    let t3 = Utc::now().timestamp();
+    let t2_naive = DateTime::parse_from_rfc3339(res1).unwrap();
 
     let t2 = t2_naive.timestamp();
     assert!(t1 <= t2 && t2 <= t3);
@@ -528,18 +527,18 @@ async fn timestamp_minmax() -> Result<()> {
     let ctx = SessionContext::new();
     let table_a = make_timestamp_tz_table::<TimestampMillisecondType>(None)?;
     let table_b =
-        make_timestamp_tz_table::<TimestampNanosecondType>(Some("UTC".to_owned()))?;
+        make_timestamp_tz_table::<TimestampNanosecondType>(Some("+00:00".to_owned()))?;
     ctx.register_table("table_a", table_a)?;
     ctx.register_table("table_b", table_b)?;
 
     let sql = "SELECT MIN(table_a.ts), MAX(table_b.ts) FROM table_a, table_b";
     let actual = execute_to_batches(&ctx, sql).await;
     let expected = vec![
-        "+-------------------------+----------------------------+",
-        "| MIN(table_a.ts)         | MAX(table_b.ts)            |",
-        "+-------------------------+----------------------------+",
-        "| 2020-09-08 11:42:29.190 | 2020-09-08 13:42:29.190855 |",
-        "+-------------------------+----------------------------+",
+        "+-------------------------+----------------------------------+",
+        "| MIN(table_a.ts)         | MAX(table_b.ts)                  |",
+        "+-------------------------+----------------------------------+",
+        "| 2020-09-08T11:42:29.190 | 2020-09-08T13:42:29.190855+00:00 |",
+        "+-------------------------+----------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
 
@@ -551,28 +550,29 @@ async fn timestamp_coercion() -> Result<()> {
     {
         let ctx = SessionContext::new();
         let table_a =
-            make_timestamp_tz_table::<TimestampSecondType>(Some("UTC".to_owned()))?;
-        let table_b =
-            make_timestamp_tz_table::<TimestampMillisecondType>(Some("UTC".to_owned()))?;
+            make_timestamp_tz_table::<TimestampSecondType>(Some("+00:00".to_owned()))?;
+        let table_b = make_timestamp_tz_table::<TimestampMillisecondType>(Some(
+            "+00:00".to_owned(),
+        ))?;
         ctx.register_table("table_a", table_a)?;
         ctx.register_table("table_b", table_b)?;
 
         let sql = "SELECT table_a.ts, table_b.ts, table_a.ts = table_b.ts FROM table_a, table_b";
         let actual = execute_to_batches(&ctx, sql).await;
         let expected = vec![
-            "+---------------------+-------------------------+-------------------------+",
-            "| ts                  | ts                      | table_a.ts = table_b.ts |",
-            "+---------------------+-------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29 | 2020-09-08 13:42:29.190 | true                    |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 12:42:29.190 | true                    |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 11:42:29.190 | true                    |",
-            "+---------------------+-------------------------+-------------------------+",
+            "+---------------------------+-------------------------------+-------------------------+",
+            "| ts                        | ts                            | table_a.ts = table_b.ts |",
+            "+---------------------------+-------------------------------+-------------------------+",
+            "| 2020-09-08T13:42:29+00:00 | 2020-09-08T13:42:29.190+00:00 | true                    |",
+            "| 2020-09-08T13:42:29+00:00 | 2020-09-08T12:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T13:42:29+00:00 | 2020-09-08T11:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T12:42:29+00:00 | 2020-09-08T13:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T12:42:29+00:00 | 2020-09-08T12:42:29.190+00:00 | true                    |",
+            "| 2020-09-08T12:42:29+00:00 | 2020-09-08T11:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T11:42:29+00:00 | 2020-09-08T13:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T11:42:29+00:00 | 2020-09-08T12:42:29.190+00:00 | false                   |",
+            "| 2020-09-08T11:42:29+00:00 | 2020-09-08T11:42:29.190+00:00 | true                    |",
+            "+---------------------------+-------------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
     }
@@ -590,15 +590,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+---------------------+----------------------------+-------------------------+",
             "| ts                  | ts                         | table_a.ts = table_b.ts |",
             "+---------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T11:42:29.190855 | true                    |",
             "+---------------------+----------------------------+-------------------------+",
 
         ];
@@ -618,15 +618,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+---------------------+----------------------------+-------------------------+",
             "| ts                  | ts                         | table_a.ts = table_b.ts |",
             "+---------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29 | 2020-09-08T11:42:29.190855 | true                    |",
             "+---------------------+----------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -645,15 +645,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+-------------------------+---------------------+-------------------------+",
             "| ts                      | ts                  | table_a.ts = table_b.ts |",
             "+-------------------------+---------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 13:42:29 | true                    |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 12:42:29 | true                    |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 11:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T13:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T12:42:29 | true                    |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T11:42:29 | true                    |",
             "+-------------------------+---------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -672,15 +672,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+-------------------------+----------------------------+-------------------------+",
             "| ts                      | ts                         | table_a.ts = table_b.ts |",
             "+-------------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T11:42:29.190855 | true                    |",
             "+-------------------------+----------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -699,15 +699,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+-------------------------+----------------------------+-------------------------+",
             "| ts                      | ts                         | table_a.ts = table_b.ts |",
             "+-------------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29.190 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29.190 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29.190 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29.190 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190 | 2020-09-08T11:42:29.190855 | true                    |",
             "+-------------------------+----------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -726,15 +726,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+---------------------+-------------------------+",
             "| ts                         | ts                  | table_a.ts = table_b.ts |",
             "+----------------------------+---------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29 | true                    |",
             "+----------------------------+---------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -753,15 +753,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+-------------------------+-------------------------+",
             "| ts                         | ts                      | table_a.ts = table_b.ts |",
             "+----------------------------+-------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29.190 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29.190 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29.190 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29.190 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29.190 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29.190 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29.190 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29.190 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29.190 | true                    |",
             "+----------------------------+-------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -780,15 +780,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+----------------------------+-------------------------+",
             "| ts                         | ts                         | table_a.ts = table_b.ts |",
             "+----------------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29.190855 | true                    |",
             "+----------------------------+----------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -807,15 +807,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+---------------------+-------------------------+",
             "| ts                         | ts                  | table_a.ts = table_b.ts |",
             "+----------------------------+---------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29 | true                    |",
             "+----------------------------+---------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -834,15 +834,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+-------------------------+-------------------------+",
             "| ts                         | ts                      | table_a.ts = table_b.ts |",
             "+----------------------------+-------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29.190 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29.190 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29.190 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29.190 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29.190 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29.190 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29.190 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29.190 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29.190 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29.190 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29.190 | true                    |",
             "+----------------------------+-------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -861,15 +861,15 @@ async fn timestamp_coercion() -> Result<()> {
             "+----------------------------+----------------------------+-------------------------+",
             "| ts                         | ts                         | table_a.ts = table_b.ts |",
             "+----------------------------+----------------------------+-------------------------+",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29.190855 | true                    |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 13:42:29.190855 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29.190855 | true                    |",
-            "| 2020-09-08 12:42:29.190855 | 2020-09-08 11:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 13:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 12:42:29.190855 | false                   |",
-            "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29.190855 | true                    |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T13:42:29.190855 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29.190855 | true                    |",
+            "| 2020-09-08T12:42:29.190855 | 2020-09-08T11:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T13:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T12:42:29.190855 | false                   |",
+            "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29.190855 | true                    |",
             "+----------------------------+----------------------------+-------------------------+",
         ];
         assert_batches_eq!(expected, &actual);
@@ -916,8 +916,8 @@ async fn group_by_timestamp_millis() -> Result<()> {
         "+---------------------+---------------+",
         "| timestamp           | SUM(t1.count) |",
         "+---------------------+---------------+",
-        "| 2018-07-01 06:00:00 | 80            |",
-        "| 2018-07-01 07:00:00 | 130           |",
+        "| 2018-07-01T06:00:00 | 80            |",
+        "| 2018-07-01T07:00:00 | 130           |",
         "+---------------------+---------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1093,7 +1093,7 @@ async fn cast_to_timestamp_twice() -> Result<()> {
         "+-------------------------------+",
         "| totimestamp(a.a)              |",
         "+-------------------------------+",
-        "| 1970-01-01 00:00:00.000000001 |",
+        "| 1970-01-01T00:00:00.000000001 |",
         "+-------------------------------+",
     ];
 
@@ -1114,7 +1114,7 @@ async fn cast_to_timestamp_seconds_twice() -> Result<()> {
         "+-------------------------+",
         "| totimestampseconds(a.a) |",
         "+-------------------------+",
-        "| 1970-01-01 00:00:01     |",
+        "| 1970-01-01T00:00:01     |",
         "+-------------------------+",
     ];
 
@@ -1134,7 +1134,7 @@ async fn cast_to_timestamp_millis_twice() -> Result<()> {
         "+-------------------------+",
         "| totimestampmillis(a.a)  |",
         "+-------------------------+",
-        "| 1970-01-01 00:00:00.001 |",
+        "| 1970-01-01T00:00:00.001 |",
         "+-------------------------+",
     ];
 
@@ -1154,7 +1154,7 @@ async fn cast_to_timestamp_micros_twice() -> Result<()> {
         "+----------------------------+",
         "| totimestampmicros(a.a)     |",
         "+----------------------------+",
-        "| 1970-01-01 00:00:00.000001 |",
+        "| 1970-01-01T00:00:00.000001 |",
         "+----------------------------+",
     ];
 
@@ -1174,7 +1174,7 @@ async fn to_timestamp_i32() -> Result<()> {
         "+-------------------------------+",
         "| totimestamp(Int64(1))         |",
         "+-------------------------------+",
-        "| 1970-01-01 00:00:00.000000001 |",
+        "| 1970-01-01T00:00:00.000000001 |",
         "+-------------------------------+",
     ];
 
@@ -1194,7 +1194,7 @@ async fn to_timestamp_micros_i32() -> Result<()> {
         "+-----------------------------+",
         "| totimestampmicros(Int64(1)) |",
         "+-----------------------------+",
-        "| 1970-01-01 00:00:00.000001  |",
+        "| 1970-01-01T00:00:00.000001  |",
         "+-----------------------------+",
     ];
 
@@ -1214,7 +1214,7 @@ async fn to_timestamp_millis_i32() -> Result<()> {
         "+-----------------------------+",
         "| totimestampmillis(Int64(1)) |",
         "+-----------------------------+",
-        "| 1970-01-01 00:00:00.001     |",
+        "| 1970-01-01T00:00:00.001     |",
         "+-----------------------------+",
     ];
 
@@ -1234,7 +1234,7 @@ async fn to_timestamp_seconds_i32() -> Result<()> {
         "+------------------------------+",
         "| totimestampseconds(Int64(1)) |",
         "+------------------------------+",
-        "| 1970-01-01 00:00:01          |",
+        "| 1970-01-01T00:00:01          |",
         "+------------------------------+",
     ];
 
@@ -1253,7 +1253,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-08-03 14:30:00 |",
+        "| 2022-08-03T14:30:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1265,7 +1265,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-08-03 14:35:00 |",
+        "| 2022-08-03T14:35:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1277,7 +1277,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-08-03 14:25:00 |",
+        "| 2022-08-03T14:25:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1289,7 +1289,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-08-03 14:25:00 |",
+        "| 2022-08-03T14:25:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1301,7 +1301,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-07-28 00:00:00 |",
+        "| 2022-07-28T00:00:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1313,7 +1313,7 @@ async fn date_bin() {
         "+---------------------+",
         "| res                 |",
         "+---------------------+",
-        "| 2022-07-29 00:00:00 |",
+        "| 2022-07-29T00:00:00 |",
         "+---------------------+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1332,8 +1332,8 @@ async fn date_bin() {
         "+---------------------+-----+",
         "| time                | val |",
         "+---------------------+-----+",
-        "| 2021-06-10 17:00:00 | 0.5 |",
-        "| 2021-06-10 17:15:00 | 0.3 |",
+        "| 2021-06-10T17:00:00 | 0.5 |",
+        "| 2021-06-10T17:15:00 | 0.3 |",
         "+---------------------+-----+",
     ];
     assert_batches_eq!(expected, &results);
@@ -1365,9 +1365,8 @@ async fn timestamp_add_interval_second() -> Result<()> {
     let res1 = actual[0][0].as_str();
     let res2 = actual[0][1].as_str();
 
-    let format = "%Y-%m-%d %H:%M:%S%.6f";
-    let t1_naive = chrono::NaiveDateTime::parse_from_str(res1, format).unwrap();
-    let t2_naive = chrono::NaiveDateTime::parse_from_str(res2, format).unwrap();
+    let t1_naive = DateTime::parse_from_rfc3339(res1).unwrap();
+    let t2_naive = DateTime::parse_from_rfc3339(res2).unwrap();
 
     assert_eq!(t1_naive.add(Duration::seconds(1)), t2_naive);
     Ok(())
@@ -1384,9 +1383,8 @@ async fn timestamp_sub_interval_days() -> Result<()> {
     let res1 = actual[0][0].as_str();
     let res2 = actual[0][1].as_str();
 
-    let format = "%Y-%m-%d %H:%M:%S%.6f";
-    let t1_naive = chrono::NaiveDateTime::parse_from_str(res1, format).unwrap();
-    let t2_naive = chrono::NaiveDateTime::parse_from_str(res2, format).unwrap();
+    let t1_naive = DateTime::parse_from_rfc3339(res1).unwrap();
+    let t2_naive = chrono::DateTime::parse_from_rfc3339(res2).unwrap();
 
     assert_eq!(t1_naive.sub(Duration::days(8)), t2_naive);
     Ok(())
@@ -1429,9 +1427,8 @@ async fn timestamp_sub_interval_years() -> Result<()> {
     let res1 = actual[0][0].as_str();
     let res2 = actual[0][1].as_str();
 
-    let format = "%Y-%m-%d %H:%M:%S%.6f";
-    let t1_naive = chrono::NaiveDateTime::parse_from_str(res1, format).unwrap();
-    let t2_naive = chrono::NaiveDateTime::parse_from_str(res2, format).unwrap();
+    let t1_naive = DateTime::parse_from_rfc3339(res1).unwrap();
+    let t2_naive = DateTime::parse_from_rfc3339(res2).unwrap();
 
     assert_eq!(t1_naive.with_year(t1_naive.year() - 16).unwrap(), t2_naive);
     Ok(())
@@ -1451,9 +1448,9 @@ async fn timestamp_array_add_interval() -> Result<()> {
         "+----------------------------+-----------------------------------+",
         "| ts                         | table_a.ts - IntervalDayTime(\"8\") |",
         "+----------------------------+-----------------------------------+",
-        "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:29.182855        |",
-        "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:29.182855        |",
-        "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:29.182855        |",
+        "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:29.182855        |",
+        "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:29.182855        |",
+        "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:29.182855        |",
         "+----------------------------+-----------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1464,9 +1461,9 @@ async fn timestamp_array_add_interval() -> Result<()> {
         "+----------------------------+--------------------------------------+",
         "| ts                         | table_b.ts + IntervalDayTime(\"1000\") |",
         "+----------------------------+--------------------------------------+",
-        "| 2020-09-08 13:42:29.190855 | 2020-09-08 13:42:30.190855           |",
-        "| 2020-09-08 12:42:29.190855 | 2020-09-08 12:42:30.190855           |",
-        "| 2020-09-08 11:42:29.190855 | 2020-09-08 11:42:30.190855           |",
+        "| 2020-09-08T13:42:29.190855 | 2020-09-08T13:42:30.190855           |",
+        "| 2020-09-08T12:42:29.190855 | 2020-09-08T12:42:30.190855           |",
+        "| 2020-09-08T11:42:29.190855 | 2020-09-08T11:42:30.190855           |",
         "+----------------------------+--------------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1477,9 +1474,9 @@ async fn timestamp_array_add_interval() -> Result<()> {
         "+----------------------------+-------------------------------------+",
         "| ts                         | table_b.ts + IntervalYearMonth(\"2\") |",
         "+----------------------------+-------------------------------------+",
-        "| 2020-09-08 13:42:29.190855 | 2020-11-08 13:42:29.190855          |",
-        "| 2020-09-08 12:42:29.190855 | 2020-11-08 12:42:29.190855          |",
-        "| 2020-09-08 11:42:29.190855 | 2020-11-08 11:42:29.190855          |",
+        "| 2020-09-08T13:42:29.190855 | 2020-11-08T13:42:29.190855          |",
+        "| 2020-09-08T12:42:29.190855 | 2020-11-08T12:42:29.190855          |",
+        "| 2020-09-08T11:42:29.190855 | 2020-11-08T11:42:29.190855          |",
         "+----------------------------+-------------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1490,9 +1487,9 @@ async fn timestamp_array_add_interval() -> Result<()> {
         "+----------------------------+---------------------------------------+",
         "| ts                         | table_b.ts - IntervalYearMonth(\"192\") |",
         "+----------------------------+---------------------------------------+",
-        "| 2020-09-08 13:42:29.190855 | 2004-09-08 13:42:29.190855            |",
-        "| 2020-09-08 12:42:29.190855 | 2004-09-08 12:42:29.190855            |",
-        "| 2020-09-08 11:42:29.190855 | 2004-09-08 11:42:29.190855            |",
+        "| 2020-09-08T13:42:29.190855 | 2004-09-08T13:42:29.190855            |",
+        "| 2020-09-08T12:42:29.190855 | 2004-09-08T12:42:29.190855            |",
+        "| 2020-09-08T11:42:29.190855 | 2004-09-08T11:42:29.190855            |",
         "+----------------------------+---------------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
@@ -1510,7 +1507,7 @@ async fn cast_timestamp_before_1970() -> Result<()> {
         "+------------------------------+",
         "| Utf8(\"1969-01-01T00:00:00Z\") |",
         "+------------------------------+",
-        "| 1969-01-01 00:00:00          |",
+        "| 1969-01-01T00:00:00          |",
         "+------------------------------+",
     ];
 
@@ -1522,7 +1519,7 @@ async fn cast_timestamp_before_1970() -> Result<()> {
         "+--------------------------------+",
         "| Utf8(\"1969-01-01T00:00:00.1Z\") |",
         "+--------------------------------+",
-        "| 1969-01-01 00:00:00.100        |",
+        "| 1969-01-01T00:00:00.100        |",
         "+--------------------------------+",
     ];
 
@@ -1542,13 +1539,13 @@ async fn cast_timestamp_to_timestamptz() -> Result<()> {
     let actual = execute_to_batches(&ctx, sql).await;
 
     let expected = vec![
-        "+----------------------------+------------------------------------+",
-        "| table_a.ts                 | arrowtypeof(table_a.ts)            |",
-        "+----------------------------+------------------------------------+",
-        "| 2020-09-08 13:42:29.190855 | Timestamp(Nanosecond, Some(\"UTC\")) |",
-        "| 2020-09-08 12:42:29.190855 | Timestamp(Nanosecond, Some(\"UTC\")) |",
-        "| 2020-09-08 11:42:29.190855 | Timestamp(Nanosecond, Some(\"UTC\")) |",
-        "+----------------------------+------------------------------------+",
+        "+----------------------------------+---------------------------------------+",
+        "| table_a.ts                       | arrowtypeof(table_a.ts)               |",
+        "+----------------------------------+---------------------------------------+",
+        "| 2020-09-08T13:42:29.190855+00:00 | Timestamp(Nanosecond, Some(\"+00:00\")) |",
+        "| 2020-09-08T12:42:29.190855+00:00 | Timestamp(Nanosecond, Some(\"+00:00\")) |",
+        "| 2020-09-08T11:42:29.190855+00:00 | Timestamp(Nanosecond, Some(\"+00:00\")) |",
+        "+----------------------------------+---------------------------------------+",
     ];
     assert_batches_eq!(expected, &actual);
 
diff --git a/datafusion/core/tests/sql/window.rs b/datafusion/core/tests/sql/window.rs
index af8426206..9333a7e5a 100644
--- a/datafusion/core/tests/sql/window.rs
+++ b/datafusion/core/tests/sql/window.rs
@@ -1151,14 +1151,14 @@ async fn window_frame_ranges_timestamp() -> Result<()> {
         "+---------------------+------+------+------+",
         "| ts                  | cnt1 | cnt2 | cnt3 |",
         "+---------------------+------+------+------+",
-        "| 2022-09-27 07:43:11 | 6    | 1    | 1    |",
-        "| 2022-09-27 07:43:12 | 6    | 2    | 3    |",
-        "| 2022-09-27 07:43:12 | 6    | 2    | 3    |",
-        "| 2022-09-27 07:43:13 | 6    | 1    | 4    |",
-        "| 2022-09-27 07:43:14 | 6    | 1    | 5    |",
-        "| 2022-09-28 11:29:54 | 2    | 1    | 1    |",
-        "| 2022-09-29 15:16:34 | 2    | 1    | 1    |",
-        "| 2022-09-30 19:03:14 | 1    | 1    | 1    |",
+        "| 2022-09-27T07:43:11 | 6    | 1    | 1    |",
+        "| 2022-09-27T07:43:12 | 6    | 2    | 3    |",
+        "| 2022-09-27T07:43:12 | 6    | 2    | 3    |",
+        "| 2022-09-27T07:43:13 | 6    | 1    | 4    |",
+        "| 2022-09-27T07:43:14 | 6    | 1    | 5    |",
+        "| 2022-09-28T11:29:54 | 2    | 1    | 1    |",
+        "| 2022-09-29T15:16:34 | 2    | 1    | 1    |",
+        "| 2022-09-30T19:03:14 | 1    | 1    | 1    |",
         "+---------------------+------+------+------+",
     ];
     assert_batches_eq!(expected, &actual);
diff --git a/datafusion/core/tests/user_defined_aggregates.rs b/datafusion/core/tests/user_defined_aggregates.rs
index 5c172fe4a..ea6838e70 100644
--- a/datafusion/core/tests/user_defined_aggregates.rs
+++ b/datafusion/core/tests/user_defined_aggregates.rs
@@ -47,7 +47,7 @@ async fn test_udf_returning_struct() {
         "+--------------------------------------------------+",
         "| first(t.value,t.time)                            |",
         "+--------------------------------------------------+",
-        "| {\"value\": 2, \"time\": 1970-01-01 00:00:00.000002} |",
+        "| {\"value\": 2, \"time\": 1970-01-01T00:00:00.000002} |",
         "+--------------------------------------------------+",
     ];
     assert_batches_eq!(expected, &execute(&ctx, sql).await);
@@ -62,7 +62,7 @@ async fn test_udf_returning_struct_sq() {
         "+-----------------+----------------------------+",
         "| sq.first[value] | sq.first[time]             |",
         "+-----------------+----------------------------+",
-        "| 2               | 1970-01-01 00:00:00.000002 |",
+        "| 2               | 1970-01-01T00:00:00.000002 |",
         "+-----------------+----------------------------+",
     ];
     assert_batches_eq!(expected, &execute(&ctx, sql).await);
@@ -78,13 +78,13 @@ async fn execute(ctx: &SessionContext, sql: &str) -> Vec<RecordBatch> {
 ///
 /// ```text
 /// value | time
-///  3.0  | 1970-01-01 00:00:00.000003
-///  2.0  | 1970-01-01 00:00:00.000002
-///  1.0  | 1970-01-01 00:00:00.000004
+///  3.0  | 1970-01-01T00:00:00.000003
+///  2.0  | 1970-01-01T00:00:00.000002
+///  1.0  | 1970-01-01T00:00:00.000004
 /// ```
 fn udaf_struct_context() -> SessionContext {
     let value: Float64Array = vec![3.0, 2.0, 1.0].into_iter().map(Some).collect();
-    let time = TimestampNanosecondArray::from_vec(vec![3000, 2000, 4000], None);
+    let time = TimestampNanosecondArray::from(vec![3000, 2000, 4000]);
 
     let batch = RecordBatch::try_from_iter(vec![
         ("value", Arc::new(value) as _),
diff --git a/datafusion/expr/Cargo.toml b/datafusion/expr/Cargo.toml
index afa2be239..b3a3ad234 100644
--- a/datafusion/expr/Cargo.toml
+++ b/datafusion/expr/Cargo.toml
@@ -36,7 +36,7 @@ path = "src/lib.rs"
 
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
-arrow = { version = "25.0.0", default-features = false }
+arrow = { version = "26.0.0", default-features = false }
 datafusion-common = { path = "../common", version = "13.0.0" }
 log = "^0.4"
 sqlparser = "0.26"
diff --git a/datafusion/expr/src/function.rs b/datafusion/expr/src/function.rs
index 515cce980..867ad5de7 100644
--- a/datafusion/expr/src/function.rs
+++ b/datafusion/expr/src/function.rs
@@ -220,7 +220,7 @@ pub fn return_type(
         }
         BuiltinScalarFunction::Now => Ok(DataType::Timestamp(
             TimeUnit::Nanosecond,
-            Some("UTC".to_owned()),
+            Some("+00:00".to_owned()),
         )),
         BuiltinScalarFunction::CurrentDate => Ok(DataType::Date32),
         BuiltinScalarFunction::CurrentTime => Ok(DataType::Time64(TimeUnit::Nanosecond)),
diff --git a/datafusion/jit/Cargo.toml b/datafusion/jit/Cargo.toml
index 398c658b4..e9ad22323 100644
--- a/datafusion/jit/Cargo.toml
+++ b/datafusion/jit/Cargo.toml
@@ -36,7 +36,7 @@ path = "src/lib.rs"
 jit = []
 
 [dependencies]
-arrow = { version = "25.0.0", default-features = false }
+arrow = { version = "26.0.0", default-features = false }
 cranelift = "0.89.0"
 cranelift-jit = "0.89.0"
 cranelift-module = "0.89.0"
diff --git a/datafusion/optimizer/Cargo.toml b/datafusion/optimizer/Cargo.toml
index 729e2306d..343cf9d70 100644
--- a/datafusion/optimizer/Cargo.toml
+++ b/datafusion/optimizer/Cargo.toml
@@ -37,7 +37,7 @@ default = ["unicode_expressions"]
 unicode_expressions = []
 
 [dependencies]
-arrow = { version = "25.0.0", features = ["prettyprint"] }
+arrow = { version = "26.0.0", features = ["prettyprint"] }
 async-trait = "0.1.41"
 chrono = { version = "0.4.22", default-features = false }
 datafusion-common = { path = "../common", version = "13.0.0" }
diff --git a/datafusion/optimizer/src/simplify_expressions/simplify_exprs.rs b/datafusion/optimizer/src/simplify_expressions/simplify_exprs.rs
index 3fda5817f..b08d0fafc 100644
--- a/datafusion/optimizer/src/simplify_expressions/simplify_exprs.rs
+++ b/datafusion/optimizer/src/simplify_expressions/simplify_exprs.rs
@@ -516,7 +516,7 @@ mod tests {
         // expect the same timestamp appears in both exprs
         let actual = get_optimized_plan_formatted(&plan, &time);
         let expected = format!(
-            "Projection: TimestampNanosecond({}, Some(\"UTC\")) AS now(), TimestampNanosecond({}, Some(\"UTC\")) AS t2\
+            "Projection: TimestampNanosecond({}, Some(\"+00:00\")) AS now(), TimestampNanosecond({}, Some(\"+00:00\")) AS t2\
             \n  TableScan: test",
             time.timestamp_nanos(),
             time.timestamp_nanos()
diff --git a/datafusion/optimizer/tests/integration-test.rs b/datafusion/optimizer/tests/integration-test.rs
index 8d59f6bab..b6931586e 100644
--- a/datafusion/optimizer/tests/integration-test.rs
+++ b/datafusion/optimizer/tests/integration-test.rs
@@ -227,8 +227,6 @@ fn concat_ws_literals() -> Result<()> {
 }
 
 #[test]
-#[ignore]
-// https://github.com/apache/arrow-datafusion/issues/3938
 fn timestamp_nano_ts_none_predicates() -> Result<()> {
     let sql = "SELECT col_int32
         FROM test
@@ -237,25 +235,26 @@ fn timestamp_nano_ts_none_predicates() -> Result<()> {
     // a scan should have the now()... predicate folded to a single
     // constant and compared to the column without a cast so it can be
     // pushed down / pruned
-    let expected = "Projection: test.col_int32\n  Filter: test.col_ts_nano_utc < TimestampNanosecond(1666612093000000000, Some(\"UTC\"))\
-                    \n    TableScan: test projection=[col_int32, col_ts_nano_none]";
+    let expected =
+        "Projection: test.col_int32\n  Filter: CAST(test.col_ts_nano_none AS Timestamp(Nanosecond, Some(\"+00:00\"))) < TimestampNanosecond(1666612093000000000, Some(\"+00:00\"))\
+         \n    TableScan: test projection=[col_int32, col_ts_nano_none]";
     assert_eq!(expected, format!("{:?}", plan));
     Ok(())
 }
 
 #[test]
-fn timestamp_nano_ts_utc_predicates() -> Result<()> {
+fn timestamp_nano_ts_utc_predicates() {
     let sql = "SELECT col_int32
         FROM test
         WHERE col_ts_nano_utc < (now() - interval '1 hour')";
-    let plan = test_sql(sql)?;
+    let plan = test_sql(sql).unwrap();
     // a scan should have the now()... predicate folded to a single
     // constant and compared to the column without a cast so it can be
     // pushed down / pruned
-    let expected = "Projection: test.col_int32\n  Filter: test.col_ts_nano_utc < TimestampNanosecond(1666612093000000000, Some(\"UTC\"))\
-                    \n    TableScan: test projection=[col_int32, col_ts_nano_utc]";
+    let expected =
+        "Projection: test.col_int32\n  Filter: test.col_ts_nano_utc < TimestampNanosecond(1666612093000000000, Some(\"+00:00\"))\
+         \n    TableScan: test projection=[col_int32, col_ts_nano_utc]";
     assert_eq!(expected, format!("{:?}", plan));
-    Ok(())
 }
 
 fn test_sql(sql: &str) -> Result<LogicalPlan> {
@@ -305,7 +304,7 @@ impl ContextProvider for MySchemaProvider {
                     // timestamp with UTC timezone
                     Field::new(
                         "col_ts_nano_utc",
-                        DataType::Timestamp(TimeUnit::Nanosecond, Some("UTC".into())),
+                        DataType::Timestamp(TimeUnit::Nanosecond, Some("+00:00".into())),
                         true,
                     ),
                 ],
diff --git a/datafusion/physical-expr/Cargo.toml b/datafusion/physical-expr/Cargo.toml
index 0b2d72dd3..d3e2c7a70 100644
--- a/datafusion/physical-expr/Cargo.toml
+++ b/datafusion/physical-expr/Cargo.toml
@@ -40,9 +40,9 @@ unicode_expressions = ["unicode-segmentation"]
 
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
-arrow = { version = "25.0.0", features = ["prettyprint"] }
-arrow-buffer = "25.0.0"
-arrow-schema = "25.0.0"
+arrow = { version = "26.0.0", features = ["prettyprint"] }
+arrow-buffer = "26.0.0"
+arrow-schema = "26.0.0"
 blake2 = { version = "^0.10.2", optional = true }
 blake3 = { version = "1.0", optional = true }
 chrono = { version = "0.4.22", default-features = false }
diff --git a/datafusion/physical-expr/src/datetime_expressions.rs b/datafusion/physical-expr/src/datetime_expressions.rs
index 48f093a2f..041d7c0ee 100644
--- a/datafusion/physical-expr/src/datetime_expressions.rs
+++ b/datafusion/physical-expr/src/datetime_expressions.rs
@@ -180,7 +180,7 @@ pub fn make_now(
     move |_arg| {
         Ok(ColumnarValue::Scalar(ScalarValue::TimestampNanosecond(
             now_ts,
-            Some("UTC".to_owned()),
+            Some("+00:00".to_owned()),
         )))
     }
 }
@@ -218,7 +218,11 @@ fn quarter_month(date: &NaiveDateTime) -> u32 {
 }
 
 fn date_trunc_single(granularity: &str, value: i64) -> Result<i64> {
-    let value = timestamp_ns_to_datetime(value).with_nanosecond(0);
+    let value = timestamp_ns_to_datetime(value)
+        .ok_or_else(|| {
+            DataFusionError::Execution(format!("Timestamp {} out of range", value))
+        })?
+        .with_nanosecond(0);
     let value = match granularity {
         "second" => value,
         "minute" => value.and_then(|d| d.with_second(0)),
diff --git a/datafusion/proto/Cargo.toml b/datafusion/proto/Cargo.toml
index eb2e20b01..823001c20 100644
--- a/datafusion/proto/Cargo.toml
+++ b/datafusion/proto/Cargo.toml
@@ -40,7 +40,7 @@ default = []
 json = ["pbjson", "serde", "serde_json"]
 
 [dependencies]
-arrow = "25.0.0"
+arrow = "26.0.0"
 datafusion = { path = "../core", version = "13.0.0" }
 datafusion-common = { path = "../common", version = "13.0.0" }
 datafusion-expr = { path = "../expr", version = "13.0.0" }
diff --git a/datafusion/row/Cargo.toml b/datafusion/row/Cargo.toml
index 52e6e50c7..794882025 100644
--- a/datafusion/row/Cargo.toml
+++ b/datafusion/row/Cargo.toml
@@ -37,7 +37,7 @@ path = "src/lib.rs"
 jit = ["datafusion-jit"]
 
 [dependencies]
-arrow = "25.0.0"
+arrow = "26.0.0"
 datafusion-common = { path = "../common", version = "13.0.0" }
 datafusion-jit = { path = "../jit", version = "13.0.0", optional = true }
 paste = "^1.0"
diff --git a/datafusion/sql/Cargo.toml b/datafusion/sql/Cargo.toml
index 44f3860f6..ebffcb8a0 100644
--- a/datafusion/sql/Cargo.toml
+++ b/datafusion/sql/Cargo.toml
@@ -37,7 +37,7 @@ default = ["unicode_expressions"]
 unicode_expressions = []
 
 [dependencies]
-arrow = { version = "25.0.0", default-features = false }
+arrow = { version = "26.0.0", default-features = false }
 datafusion-common = { path = "../common", version = "13.0.0" }
 datafusion-expr = { path = "../expr", version = "13.0.0" }
 sqlparser = "0.26"
diff --git a/datafusion/sql/src/planner.rs b/datafusion/sql/src/planner.rs
index 2bc854f2e..b51ce83d5 100644
--- a/datafusion/sql/src/planner.rs
+++ b/datafusion/sql/src/planner.rs
@@ -2833,7 +2833,7 @@ pub fn convert_simple_data_type(sql_type: &SQLDataType) -> Result<DataType> {
             let tz = if matches!(tz_info, TimezoneInfo::Tz)
                 || matches!(tz_info, TimezoneInfo::WithTimeZone)
             {
-                Some("UTC".to_string())
+                Some("+00:00".to_string())
             } else {
                 None
             };
diff --git a/parquet-test-utils/Cargo.toml b/parquet-test-utils/Cargo.toml
index 599cdc35b..5d917490b 100644
--- a/parquet-test-utils/Cargo.toml
+++ b/parquet-test-utils/Cargo.toml
@@ -25,4 +25,4 @@ edition = "2021"
 [dependencies]
 datafusion = { path = "../datafusion/core" }
 object_store = "0.5.0"
-parquet = "25.0.0"
+parquet = "26.0.0"
diff --git a/test-utils/Cargo.toml b/test-utils/Cargo.toml
index 85d1c0233..358b6a919 100644
--- a/test-utils/Cargo.toml
+++ b/test-utils/Cargo.toml
@@ -23,6 +23,6 @@ edition = "2021"
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-arrow = { version = "25.0.0", features = ["prettyprint"] }
+arrow = { version = "26.0.0", features = ["prettyprint"] }
 env_logger = "0.9.0"
 rand = "0.8"