TestTypesDateTime tests date/time type handling
(t *testing.T)
| 78 | |
| 79 | // TestTypesDateTime tests date/time type handling |
| 80 | func 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 | } |
nothing calls this directly
no test coverage detected