MCPcopy Create free account
hub / github.com/PostHog/duckgres / TestTypesDateTime

Function TestTypesDateTime

tests/integration/types_test.go:80–122  ·  view source on GitHub ↗

TestTypesDateTime tests date/time type handling

(t *testing.T)

Source from the content-addressed store, hash-verified

78
79// TestTypesDateTime tests date/time type handling
80func TestTypesDateTime(t *testing.T) {
81 tests := []QueryTest{
82 // Date
83 {Name: "date_literal", Query: "SELECT DATE '2024-01-15'"},
84 {Name: "date_cast", Query: "SELECT '2024-01-15'::DATE"},
85 {Name: "date_far_future_sentinel", Query: "SELECT DATE '9999-12-31'"},
86 {Name: "date_positive_infinity", Query: "SELECT DATE 'infinity'"},
87 {Name: "date_negative_infinity", Query: "SELECT DATE '-infinity'"},
88 {Name: "current_date", Query: "SELECT CURRENT_DATE IS NOT NULL"},
89
90 // Time
91 {Name: "time_literal", Query: "SELECT TIME '12:30:45'"},
92 {Name: "time_cast", Query: "SELECT '12:30:45'::TIME"},
93 {Name: "time_with_microseconds", Query: "SELECT TIME '12:30:45.123456'"},
94
95 // Timestamp
96 {Name: "timestamp_literal", Query: "SELECT TIMESTAMP '2024-01-15 12:30:45'"},
97 {Name: "timestamp_cast", Query: "SELECT '2024-01-15 12:30:45'::TIMESTAMP"},
98 {Name: "timestamp_with_microseconds", Query: "SELECT TIMESTAMP '2024-01-15 12:30:45.123456'"},
99
100 // Timestamp with timezone
101 {Name: "timestamptz_literal", Query: "SELECT TIMESTAMPTZ '2024-01-15 12:30:45+00'"},
102 {Name: "timestamptz_cast", Query: "SELECT '2024-01-15 12:30:45+00'::TIMESTAMPTZ"},
103 {Name: "now_function", Query: "SELECT NOW() IS NOT NULL"},
104
105 // Interval
106 {Name: "interval_day", Query: "SELECT INTERVAL '1 day'"},
107 {Name: "interval_hour_minute", Query: "SELECT INTERVAL '1 hour 30 minutes'"},
108 {Name: "interval_complex", Query: "SELECT INTERVAL '1 year 2 months 3 days'"},
109 {Name: "interval_cast", Query: "SELECT '1 day'::INTERVAL"},
110
111 // Date arithmetic
112 {Name: "date_add_interval", Query: "SELECT DATE '2024-01-15' + INTERVAL '1 month'"},
113 {Name: "date_subtract_interval", Query: "SELECT DATE '2024-01-15' - INTERVAL '1 day'"},
114 {Name: "date_add_integer", Query: "SELECT DATE '2024-01-15' + 7"},
115 {Name: "date_difference", Query: "SELECT DATE '2024-01-15' - DATE '2024-01-01'"},
116
117 // From table
118 {Name: "select_date_column", Query: "SELECT date_col FROM types_test WHERE id = 1"},
119 {Name: "select_time_column", Query: "SELECT time_col FROM types_test WHERE id = 1"},
120 {Name: "select_timestamp_column", Query: "SELECT timestamp_col FROM types_test WHERE id = 1"},
121 {Name: "select_timestamptz_column", Query: "SELECT timestamptz_col FROM types_test WHERE id = 1"},
122 {Name: "select_interval_column", Query: "SELECT interval_col FROM types_test WHERE id = 1"},
123 }
124 runQueryTests(t, tests)
125}

Callers

nothing calls this directly

Calls 1

runQueryTestsFunction · 0.85

Tested by

no test coverage detected