[ 
https://issues.apache.org/jira/browse/CALCITE-6624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17889008#comment-17889008
 ] 

Dmitry Sysolyatin edited comment on CALCITE-6624 at 10/13/24 5:01 PM:
----------------------------------------------------------------------

[~julianhyde] 
I accidentally set 1.37 as the fix version; it was meant to be in the affect 
version.

Regarding Babel, my initial plan was to implement DATETIME datatype parsing at 
the Babel parser level, but I noticed that we have DATETIME literal parsing for 
BigQuery inside Parser.jj, which is also valid for MySQL. Therefore, I decided 
to put DATETIME type parsing in Parser.jj, as it would be better to have both 
DATETIME datatype parsing and DATETIME literal parsing in the same place.


was (Author: dmsysolyatin):
[~julianhyde] 
I accidentally set 1.37 as the fix version; it was meant to be in the affect 
version.

Regarding Babel, my initial plan was to implement DATETIME datatype parsing at 
the Babel parser level, but I noticed that we already have DATETIME literal 
parsing for BigQuery in the core. Therefore, I decided to put DATETIME type 
parsing in Parser.jj, as it would be better to have both DATETIME datatype 
parsing and DATETIME literal parsing in the same place.

> SqlParser should parse MySQL DATETIME type
> ------------------------------------------
>
>                 Key: CALCITE-6624
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6624
>             Project: Calcite
>          Issue Type: Bug
>          Components: babel, core
>    Affects Versions: 1.37.0
>            Reporter: Dmitry Sysolyatin
>            Assignee: Dmitry Sysolyatin
>            Priority: Major
>              Labels: pull-request-available
>
> MySQL has two different data types: TIMESTAMP and DATETIME. The difference 
> between them is the range they support.
> From the documentation [1]
> ??The TIMESTAMP data type is used for values that contain both date and time 
> parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 
> 03:14:07' UTC.??
> ??The DATETIME type is used for values that contain both date and time parts. 
> MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD hh:mm:ss' format. 
> The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.??
> Calcite's TIMESTAMP likely supports both ranges, and for unparse logic, the 
> MySQL dialect class always uses DATETIME because the TIMESTAMP range is a 
> subset of the DATETIME range.
> The only missing part is parsing the DATETIME datatype. For example
> {code:java}
> SELECT CAST(timestamp_field AS DATETIME) FROM <table>
> {code}
> [1] [https://dev.mysql.com/doc/refman/8.4/en/datetime.html]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to