diff options
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc index 2c963322eb6..9abf62df545 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1352,6 +1352,7 @@ bool Item::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate) case INT_RESULT: { longlong value= val_int(); + bool neg= !unsigned_flag && value < 0; if (field_type() == MYSQL_TYPE_YEAR) { if (max_length == 2) @@ -1363,7 +1364,8 @@ bool Item::get_date(MYSQL_TIME *ltime,ulonglong fuzzydate) } value*= 10000; /* make it YYYYMMHH */ } - if (null_value || int_to_datetime_with_warn(value, ltime, fuzzydate, + if (null_value || int_to_datetime_with_warn(neg, neg ? -value : value, + ltime, fuzzydate, field_name_or_null())) goto err; break; |