Remus Rusanu created CALCITE-1664:
-------------------------------------
Summary: CAST('<string>' as TIMESTAMP) adds part of sub-second
fraction to the value
Key: CALCITE-1664
URL: https://issues.apache.org/jira/browse/CALCITE-1664
Project: Calcite
Issue Type: Bug
Reporter: Remus Rusanu
Assignee: Julian Hyde
{noformat}
select
TIMESTAMP '2016-02-26 19:06:00',
CAST('2016-02-26 19:06:00' as TIMESTAMP);
+---------------------+---------------------+
| EXPR$0 | EXPR$1 |
+---------------------+---------------------+
| 2016-02-26 19:06:00 | 2016-02-26 19:06:00 |
+---------------------+---------------------+
!ok
select
TIMESTAMP '2016-02-26 19:06:00.1',
CAST('2016-02-26 19:06:00.1' as TIMESTAMP),
TIMESTAMPDIFF(SECOND,
TIMESTAMP '2016-02-26 19:06:00.1',
CAST('2016-02-26 19:06:00.1' as TIMESTAMP));
+---------------------+---------------------+--------+
| EXPR$0 | EXPR$1 | EXPR$2 |
+---------------------+---------------------+--------+
| 2016-02-26 19:06:00 | 2016-02-26 19:06:00 | 0 |
+---------------------+---------------------+--------+
!ok
select
TIMESTAMP '2016-02-26 19:06:00.123456',
CAST('2016-02-26 19:06:00.123456' as TIMESTAMP),
TIMESTAMPDIFF(SECOND,
TIMESTAMP '2016-02-26 19:06:00.123456',
CAST('2016-02-26 19:06:00.123456' as TIMESTAMP));
+---------------------+---------------------+--------+
| EXPR$0 | EXPR$1 | EXPR$2 |
+---------------------+---------------------+--------+
| 2016-02-26 19:06:00 | 2016-02-26 19:08:03 | 123 |
+---------------------+---------------------+--------+
!ok
select
TIMESTAMP '2016-02-26 19:06:00.12345678',
CAST('2016-02-26 19:06:00.12345678' as TIMESTAMP),
TIMESTAMPDIFF(SECOND,
TIMESTAMP '2016-02-26 19:06:00.123456789',
CAST('2016-02-26 19:06:00.123456789' as TIMESTAMP));
+---------------------+---------------------+--------+
| EXPR$0 | EXPR$1 | EXPR$2 |
+---------------------+---------------------+--------+
| 2016-02-26 19:06:00 | 2016-02-26 22:31:46 | 123456 |
+---------------------+---------------------+--------+
!ok
{noformat}
Note how {{TIMESTAMP <string>}} parses the value correctly (not sure if the
sub-second fraction is parsed though) but {{CAST}} adds part of the sub-second
fraction as a seconds to the value.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)