Bug #27736 Strict mode fails to detect a truncation on INSERT of expression.
Submitted: 10 Apr 2007 17:00 Modified: 20 Nov 2007 11:58
Reporter: Tobias Asplund Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Data Types Severity:S2 (Serious)
Version:5.0.37 Community/5.1 OS:MacOS (Linux)
Assigned to: Evgeny Potemkin CPU Architecture:Any

[10 Apr 2007 17:00] Tobias Asplund
Description:
Strict mode should detect a truncation and abort/roll back my statement.

How to repeat:
SET SQL_MODE = 'STRICT_ALL_TABLES';

CREATE TABLE strictbug ( a DECIMAL(3, 1) );

SELECT @@SQL_MODE;

INSERT INTO strictbug VALUES (1/7);
[10 Apr 2007 22:34] MySQL Verification Team
Thank you for the bug report.
[20 Nov 2007 11:58] Sergei Golubchik
SQL Standard 2003, part 2:  Foundation, section 9.2 Store
assignment, General Rules, paragraph 2), case a), sub-case x):

x) If the declared type of T is numeric, then
  Case:
  1) If V is a member of the declared type of T, then T is
  set to V.
  2) If a member of the declared type of T can be obtained
  from V by rounding or truncation, then T is set to that
  value. If the declared type of T is exact numeric, then it
  is implementation-defined whether the approximation is
  obtained by rounding or by truncation.
  3) Otherwise, an exception condition is raised: "data
  exception -- numeric value out of range."
===================

as you can see your example is covered by case 2), the data should be inserted, and no error should be generated.