MaxGekk opened a new pull request #24332: [SPARK-27423][SQL] Cast DATE <-> 
TIMESTAMP according to the SQL standard
URL: https://github.com/apache/spark/pull/24332
 
 
   ## What changes were proposed in this pull request?
   
   According to SQL standard, value of `DATE` type is union of year, month, 
dayInMonth, and it is independent from any time zones. To convert it to 
Catalyst's `TIMESTAMP` which is actually `TIMESTAMP WITH TIME ZONE`, DATE value 
should be "extended" by the time at midnight - `00:00:00`. The resulted local 
date+time should be considered as a timestamp in the session time zone, and 
casted to microseconds since epoch in `UTC` accordingly. 
   
   The reverse casting from `TIMESTAMP` to `DATE` should be performed in the 
similar way. `TIMESTAMP` values should be represented as a local date+time in 
the session time zone. And the time component should be just removed. For 
example, `TIMESTAMP 2019-04-10 00:10:12` -> `DATE 2019-04-10`. The resulted 
date is converted to days since epoch `1970-01-01`. 
   
   ## How was this patch tested?
   
   The changes were tested by existing test suites - `DateFunctionsSuite`, 
`DateExpressionsSuite` and `CastSuite`.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to