Bug #21070 subtraction of two unsigned field returns unsigned
| Submitted: | 14 Jul 2006 19:36 | Modified: | 15 Jul 2006 14:20 |
|---|---|---|---|
| Reporter: | Sedat Onur ORAKOGLU | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0.22 | OS: | Windows (win 2000) |
| Assigned to: | CPU Architecture: | Any |
[14 Jul 2006 19:36]
Sedat Onur ORAKOGLU
[15 Jul 2006 14:20]
Valeriy Kravchuk
Thank you for a problem report. Sorry, but this is not a bug. Please, read the manual (http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html): "Warning: When you use subtraction between integer values where one is of type UNSIGNED, the result is unsigned unless the NO_UNSIGNED_SUBTRACTION SQL mode is enabled. See Section 12.8, “Cast Functions and Operators”." Use the following in such a cases: mysql> select f1, f2, cast(f2 - f1 as signed) from test; +------+------+-------------------------+ | f1 | f2 | cast(f2 - f1 as signed) | +------+------+-------------------------+ | 1 | 6 | 5 | | 8 | 10 | 2 | | 20 | 5 | -15 | | 25 | 10 | -15 | +------+------+-------------------------+ 4 rows in set (0.01 sec) or don't use unsigned at all.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.038 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.