Loading mysql-test/r/type_datetime.result +3 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,9 @@ dt 0000-00-00 00:00:00 0000-00-00 00:00:00 drop table t1; select cast('2006-12-05 22:10:10' as datetime) + 0; cast('2006-12-05 22:10:10' as datetime) + 0 20061205221010.000000 CREATE TABLE t1(a DATETIME NOT NULL); INSERT INTO t1 VALUES ('20060606155555'); SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555"); Loading mysql-test/t/type_datetime.test +6 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,12 @@ insert into t1 values ("00-00-00"), ("00-00-00 00:00:00"); select * from t1; drop table t1; # # Bug #16546 DATETIME+0 not always coerced the same way # select cast('2006-12-05 22:10:10' as datetime) + 0; # End of 4.1 tests # Loading sql/item_timefunc.h +7 −0 Original line number Diff line number Diff line Loading @@ -847,12 +847,19 @@ class Item_datetime_typecast :public Item_typecast_maybe_null String *val_str(String *str); const char *cast_type() const { return "datetime"; } enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; } void fix_length_and_dec() { Item_typecast_maybe_null::fix_length_and_dec(); decimals= DATETIME_DEC; } Field *tmp_table_field(TABLE *t_arg) { return (new Field_datetime(maybe_null, name, t_arg, &my_charset_bin)); } bool result_as_longlong() { return TRUE; } longlong val_int(); double val() { return (double) val_int(); } my_decimal *val_decimal(my_decimal *decimal_value) { DBUG_ASSERT(fixed == 1); Loading Loading
mysql-test/r/type_datetime.result +3 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,9 @@ dt 0000-00-00 00:00:00 0000-00-00 00:00:00 drop table t1; select cast('2006-12-05 22:10:10' as datetime) + 0; cast('2006-12-05 22:10:10' as datetime) + 0 20061205221010.000000 CREATE TABLE t1(a DATETIME NOT NULL); INSERT INTO t1 VALUES ('20060606155555'); SELECT a FROM t1 WHERE a=(SELECT MAX(a) FROM t1) AND (a="20060606155555"); Loading
mysql-test/t/type_datetime.test +6 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,12 @@ insert into t1 values ("00-00-00"), ("00-00-00 00:00:00"); select * from t1; drop table t1; # # Bug #16546 DATETIME+0 not always coerced the same way # select cast('2006-12-05 22:10:10' as datetime) + 0; # End of 4.1 tests # Loading
sql/item_timefunc.h +7 −0 Original line number Diff line number Diff line Loading @@ -847,12 +847,19 @@ class Item_datetime_typecast :public Item_typecast_maybe_null String *val_str(String *str); const char *cast_type() const { return "datetime"; } enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; } void fix_length_and_dec() { Item_typecast_maybe_null::fix_length_and_dec(); decimals= DATETIME_DEC; } Field *tmp_table_field(TABLE *t_arg) { return (new Field_datetime(maybe_null, name, t_arg, &my_charset_bin)); } bool result_as_longlong() { return TRUE; } longlong val_int(); double val() { return (double) val_int(); } my_decimal *val_decimal(my_decimal *decimal_value) { DBUG_ASSERT(fixed == 1); Loading