@@ -395,7 +395,7 @@ datafusion.format.timestamp_format
395395datafusion.format.timestamp_tz_format
396396datafusion.format.types_info
397397
398- # date_format: SET / SHOW / RESET / SHOW
398+ # date_format: query result display uses session format (default: %Y-%m-%d)
399399statement ok
400400SET datafusion.format.date_format = '%d-%m-%Y'
401401
@@ -404,6 +404,11 @@ SHOW datafusion.format.date_format
404404----
405405datafusion.format.date_format %d-%m-%Y
406406
407+ query D
408+ SELECT DATE '2026-04-07'
409+ ----
410+ 07-04-2026
411+
407412statement ok
408413RESET datafusion.format.date_format
409414
@@ -412,14 +417,23 @@ SHOW datafusion.format.date_format
412417----
413418datafusion.format.date_format %Y-%m-%d
414419
415- # datetime_format
420+ query D
421+ SELECT DATE '2026-04-07'
422+ ----
423+ 2026-04-07
424+
425+ # datetime_format (default: %Y-%m-%dT%H:%M:%S%.f)
416426statement ok
417- SET datafusion.format.datetime_format = '%Y/%m/%d %H:%M:%S'
427+ SET datafusion.format.datetime_format = '%d-%m-%YT %H:%M:%S'
418428
419429query TT
420430SHOW datafusion.format.datetime_format
421431----
422- datafusion.format.datetime_format %Y/%m/%d %H:%M:%S
432+ datafusion.format.datetime_format %d-%m-%YT%H:%M:%S
433+
434+ # DATETIME literals are not implemented in the SQL parser yet.
435+ query error DataFusion error: This feature is not implemented: Unsupported SQL type DATETIME
436+ SELECT DATETIME '2026-04-07 00:10:00';
423437
424438statement ok
425439RESET datafusion.format.datetime_format
@@ -429,14 +443,19 @@ SHOW datafusion.format.datetime_format
429443----
430444datafusion.format.datetime_format %Y-%m-%dT%H:%M:%S%.f
431445
432- # timestamp_format
446+ # timestamp_format (default: %Y-%m-%dT%H:%M:%S%.f)
433447statement ok
434- SET datafusion.format.timestamp_format = '%FT %H:%M:%S'
448+ SET datafusion.format.timestamp_format = '%d-%m-%YT %H:%M:%S'
435449
436450query TT
437451SHOW datafusion.format.timestamp_format
438452----
439- datafusion.format.timestamp_format %FT%H:%M:%S
453+ datafusion.format.timestamp_format %d-%m-%YT%H:%M:%S
454+
455+ query P
456+ SELECT TIMESTAMP '2026-04-07 13:31:00';
457+ ----
458+ 07-04-2026T13:31:00
440459
441460statement ok
442461RESET datafusion.format.timestamp_format
@@ -446,7 +465,12 @@ SHOW datafusion.format.timestamp_format
446465----
447466datafusion.format.timestamp_format %Y-%m-%dT%H:%M:%S%.f
448467
449- # timestamp_tz_format (default NULL)
468+ query P
469+ SELECT TIMESTAMP '2026-04-07 13:31:00';
470+ ----
471+ 2026-04-07T13:31:00
472+
473+ # timestamp_tz_format (default: NULL)
450474statement ok
451475SET datafusion.format.timestamp_tz_format = '%Y-%m-%d %H:%M:%S %z'
452476
@@ -455,6 +479,11 @@ SHOW datafusion.format.timestamp_tz_format
455479----
456480datafusion.format.timestamp_tz_format %Y-%m-%d %H:%M:%S %z
457481
482+ query P
483+ SELECT TIMESTAMPTZ '2026-04-07 13:31:00';
484+ ----
485+ 2026-04-07T13:31:00
486+
458487statement ok
459488RESET datafusion.format.timestamp_tz_format
460489
@@ -463,14 +492,19 @@ SHOW datafusion.format.timestamp_tz_format
463492----
464493datafusion.format.timestamp_tz_format NULL
465494
466- # time_format
495+ # time_format (default: %H:%M:%S%.f)
467496statement ok
468- SET datafusion.format.time_format = '%H -%M-%S '
497+ SET datafusion.format.time_format = '%S -%M-%H '
469498
470499query TT
471500SHOW datafusion.format.time_format
472501----
473- datafusion.format.time_format %H-%M-%S
502+ datafusion.format.time_format %S-%M-%H
503+
504+ query D
505+ SELECT TIME '01:02:12.123' AS time;
506+ ----
507+ 12-02-01
474508
475509statement ok
476510RESET datafusion.format.time_format
@@ -480,7 +514,12 @@ SHOW datafusion.format.time_format
480514----
481515datafusion.format.time_format %H:%M:%S%.f
482516
483- # duration_format: values are normalized to lowercase; ISO8601 and pretty are valid
517+ query D
518+ SELECT TIME '01:02:12.123' AS time;
519+ ----
520+ 01:02:12.123
521+
522+ # duration_format: (default: pretty) values are normalized to lowercase; ISO8601 and pretty are valid
484523statement ok
485524SET datafusion.format.duration_format = ISO8601
486525
@@ -489,6 +528,12 @@ SHOW datafusion.format.duration_format
489528----
490529datafusion.format.duration_format iso8601
491530
531+ # Session duration_format controls display of Duration columns (not SQL INTERVAL)
532+ query ?
533+ SELECT arrow_cast(3661, 'Duration(Second)');
534+ ----
535+ PT3661S
536+
492537statement ok
493538SET datafusion.format.duration_format to 'PRETTY'
494539
@@ -497,6 +542,11 @@ SHOW datafusion.format.duration_format
497542----
498543datafusion.format.duration_format pretty
499544
545+ query ?
546+ SELECT arrow_cast(3661, 'Duration(Second)');
547+ ----
548+ 0 days 1 hours 1 mins 1 secs
549+
500550statement ok
501551RESET datafusion.format.duration_format
502552
@@ -505,7 +555,29 @@ SHOW datafusion.format.duration_format
505555----
506556datafusion.format.duration_format pretty
507557
508- # null display string
558+ query ?
559+ SELECT arrow_cast(3661, 'Duration(Second)');
560+ ----
561+ 0 days 1 hours 1 mins 1 secs
562+
563+ # Case-insensitive duration_format variable name
564+ statement ok
565+ SET datafusion.FORMAT.DURATION_FORMAT = 'ISO8601'
566+
567+ query TT
568+ SHOW datafusion.format.duration_format
569+ ----
570+ datafusion.format.duration_format iso8601
571+
572+ query ?
573+ SELECT arrow_cast(61, 'Duration(Second)');
574+ ----
575+ PT61S
576+
577+ statement ok
578+ RESET datafusion.format.duration_format
579+
580+ # null display string (default: (empty))
509581statement ok
510582SET datafusion.format.null = 'NuLL'
511583
@@ -522,7 +594,7 @@ SHOW datafusion.format.null
522594----
523595datafusion.format.null (empty)
524596
525- # safe
597+ # safe (default: true)
526598statement ok
527599SET datafusion.format.safe = false
528600
@@ -539,7 +611,7 @@ SHOW datafusion.format.safe
539611----
540612datafusion.format.safe true
541613
542- # types_info
614+ # types_info (default: false)
543615statement ok
544616SET datafusion.format.types_info to true
545617
@@ -565,6 +637,11 @@ SHOW datafusion.format.date_format
565637----
566638datafusion.format.date_format %m/%d/%Y
567639
640+ query D
641+ SELECT DATE '2026-04-07';
642+ ----
643+ 04/07/2026
644+
568645statement ok
569646RESET datafusion.format.date_format
570647
@@ -573,6 +650,11 @@ SHOW datafusion.format.date_format
573650----
574651datafusion.format.date_format %Y-%m-%d
575652
653+ query D
654+ SELECT DATE '2026-04-07';
655+ ----
656+ 2026-04-07
657+
576658# Invalid format option name
577659statement error DataFusion error: Invalid or Unsupported Configuration: Config value "unknown_option" not found on FormatOptions
578660SET datafusion.format.unknown_option = true
0 commit comments