Skip to content

Commit

Permalink
feat: add trino timestamp resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
benfdking committed Feb 8, 2025
1 parent 7739945 commit af67518
Show file tree
Hide file tree
Showing 2 changed files with 226 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
-- Trino supports timestamp datatypes at various levels of
-- precision from TIMESTAMP(0) to TIMESTAMP(12). These
-- correspond to precision from seconds to picoseconds.
-- Bare TIMESTAMP is an alias for TIMESTAMP(3).
-- https://trino.io/docs/current/language/types.html#timestamp
-- https://trino.io/docs/current/language/types.html#timestamp-p

-- Basic Timestamp
SELECT CAST((TIMESTAMP '2012-10-31 01:00 UTC') AS TIMESTAMP);

-- Timestamp with minimum precision (seconds)
SELECT CAST((TIMESTAMP '2012-10-31 01:00 UTC') AS TIMESTAMP(0));

-- Timestamp with maximum precision (picoseconds)
SELECT CAST((TIMESTAMP '2012-10-31 01:00 UTC') AS TIMESTAMP(12));

-- Timestamp with time zone
SELECT
CAST(
(TIMESTAMP '2001-08-22 03:04:05.321 America/Chicago')
AS TIMESTAMP WITH TIME ZONE
);

-- Timestamp without time zone
SELECT
CAST(
(TIMESTAMP '2001-08-22 03:04:05.321 America/Chicago')
AS TIMESTAMP WITHOUT TIME ZONE
);

-- Timestamp with precision and time zone
SELECT
CAST(
(TIMESTAMP '2001-08-22 03:04:05.321 America/Chicago')
AS TIMESTAMP(6) WITH TIME ZONE
);

-- Timestamp with precision and without time zone
SELECT
CAST(
(TIMESTAMP '2001-08-22 03:04:05.321 America/Chicago')
AS TIMESTAMP(6) WITHOUT TIME ZONE
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
file:
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2012-10-31 01:00 UTC'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2012-10-31 01:00 UTC'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- bracketed:
- start_bracket: (
- numeric_literal: '0'
- end_bracket: )
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2012-10-31 01:00 UTC'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- bracketed:
- start_bracket: (
- numeric_literal: '12'
- end_bracket: )
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2001-08-22 03:04:05.321 America/Chicago'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- keyword: WITH
- keyword: TIME
- keyword: ZONE
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2001-08-22 03:04:05.321 America/Chicago'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- keyword: WITHOUT
- keyword: TIME
- keyword: ZONE
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2001-08-22 03:04:05.321 America/Chicago'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- bracketed:
- start_bracket: (
- numeric_literal: '6'
- end_bracket: )
- keyword: WITH
- keyword: TIME
- keyword: ZONE
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- bracketed:
- start_bracket: (
- expression:
- keyword: TIMESTAMP
- date_constructor_literal: '''2001-08-22 03:04:05.321 America/Chicago'''
- end_bracket: )
- keyword: AS
- data_type:
- keyword: TIMESTAMP
- bracketed:
- start_bracket: (
- numeric_literal: '6'
- end_bracket: )
- keyword: WITHOUT
- keyword: TIME
- keyword: ZONE
- end_bracket: )
- statement_terminator: ;

0 comments on commit af67518

Please sign in to comment.