diff options
-rw-r--r-- | mysql-test/r/func_time.result | 15 | ||||
-rw-r--r-- | mysql-test/t/func_time.test | 6 | ||||
-rw-r--r-- | sql/item_cmpfunc.cc | 9 |
3 files changed, 28 insertions, 2 deletions
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index 8f96a9ff5d9..1ada270b326 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -1358,6 +1358,21 @@ Warning 1292 Truncated incorrect time value: '' Warning 1292 Truncated incorrect time value: '' DROP TABLE t1; End of 5.1 tests +select time('10:10:10') > 10; +time('10:10:10') > 10 +1 +select time('10:10:10') > 1010; +time('10:10:10') > 1010 +1 +select time('10:10:09') > 101010; +time('10:10:09') > 101010 +0 +select time('10:10:10') > 101010; +time('10:10:10') > 101010 +0 +select time('10:10:11') > 101010; +time('10:10:11') > 101010 +1 select time(' 1 02:03:04') + interval 9 microsecond; time(' 1 02:03:04') + interval 9 microsecond 26:03:04.000009 diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 65d347c05da..078f910a704 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -861,6 +861,12 @@ DROP TABLE t1; --echo End of 5.1 tests +select time('10:10:10') > 10; +select time('10:10:10') > 1010; +select time('10:10:09') > 101010; +select time('10:10:10') > 101010; +select time('10:10:11') > 101010; + select time(' 1 02:03:04') + interval 9 microsecond; select time(' 1 02:03:04') - interval 9 microsecond; select time('-1 02:03:04') + interval 9 microsecond; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 24a117ef8ca..2cbcbbdb55f 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -870,9 +870,14 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, { MYSQL_TIME buf; int was_cut; + longlong res; - if (number_to_datetime(value, &buf, TIME_INVALID_DATES|TIME_FUZZY_DATE, - &was_cut) == -1) + if (t_type == MYSQL_TIMESTAMP_TIME) + res= number_to_time(value, &buf, &was_cut); + else + res= number_to_datetime(value, &buf, TIME_INVALID_DATES|TIME_FUZZY_DATE, + &was_cut); + if (res == -1) { const Lazy_string_num str(value); make_truncated_value_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, |