Description:
Output:
=====
mysql> create table t1(c1 date);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 values('2016-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> select c1, STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END from t1;
+------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+
| c1 | STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') | c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') | CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END |
+------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+
| 2016-01-01 | 2016-01-01 00:00:00 | 1 | NOT-EQUAL |
+------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.8-rc |
+-----------+
1 row in set (0.00 sec)
Problem:
=====
"CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END" is expected to return 'EQUAL'.
How to repeat:
drop table if exists t1;
create table t1(c1 date);
insert into t1 values('2016-01-01');
select c1, STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END from t1;
Suggested fix:
"CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END" returns 'EQUAL'.
Description: Output: ===== mysql> create table t1(c1 date); Query OK, 0 rows affected (0.00 sec) mysql> insert into t1 values('2016-01-01'); Query OK, 1 row affected (0.00 sec) mysql> select c1, STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END from t1; +------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+ | c1 | STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') | c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') | CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END | +------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+ | 2016-01-01 | 2016-01-01 00:00:00 | 1 | NOT-EQUAL | +------------+---------------------------------------+--------------------------------------------+--------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.8-rc | +-----------+ 1 row in set (0.00 sec) Problem: ===== "CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END" is expected to return 'EQUAL'. How to repeat: drop table if exists t1; create table t1(c1 date); insert into t1 values('2016-01-01'); select c1, STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), c1 = STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s'), CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END from t1; Suggested fix: "CASE c1 WHEN STR_TO_DATE(c1 , '%Y-%m-%d %H:%i:%s') THEN 'EQUAL' ELSE 'NOT-EQUAL' END" returns 'EQUAL'.