Skip to content

date_add and date_sub are incompatible with Mysql #9715

@qw4990

Description

@qw4990

Bug Report

Please answer these questions before submitting your issue. Thanks!

  1. What did you do?
    If possible, provide a recipe for reproducing the error.
select date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR);
select date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH);
select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR);
select date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH);
  1. What did you expect to see?
    In Mysql
mysql> select date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR);
+---------------------------------------------------------+
| date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR) |
+---------------------------------------------------------+
| 1998-01-02 00:59:59                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH);
+-----------------------------------------------------------+
| date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH) |
+-----------------------------------------------------------+
| 1999-01-31 23:59:59                                       |
+-----------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR);
+---------------------------------------------------------+
| date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR) |
+---------------------------------------------------------+
| 1997-12-30 23:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH);
+-----------------------------------------------------------+
| date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH) |
+-----------------------------------------------------------+
| 1996-12-01 00:00:00                                       |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
  1. What did you see instead?
    In TiDB
mysql> select date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR);
+---------------------------------------------------------+
| date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR) |
+---------------------------------------------------------+
| NULL                                                    |
+---------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> select date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH);
+-----------------------------------------------------------+
| date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH) |
+-----------------------------------------------------------+
| NULL                                                      |
+-----------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR);
+---------------------------------------------------------+
| date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR) |
+---------------------------------------------------------+
| NULL                                                    |
+---------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> select date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH);
+-----------------------------------------------------------+
| date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH) |
+-----------------------------------------------------------+
| NULL                                                      |
+-----------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
  1. What version of TiDB are you using (tidb-server -V or run select tidb_version(); on TiDB)?
mysql> select tidb_version();
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tidb_version()                                                                                                                                                                                                                                                                                                                     |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Release Version: v3.0.0-beta-212-g0681b8125
Git Commit Hash: 0681b8125080045ee0d4747ce61923164c6f2dd1
Git Branch: master
UTC Build Time: 2019-03-14 04:39:19
GoVersion: go version go1.12 darwin/amd64
Race Enabled: false
TiKV Min Version: 2.1.0-alpha.1-ff3dd160846b7d1aed9079c389fc188f7f5ea13e
Check Table Before Drop: false |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueDenotes an issue ready for a new contributor, according to the "help wanted" guidelines.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.type/bugThe issue is confirmed as a bug.type/compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions