MYSQL: 1265 列数据被截断了吗?

MYSQL: 1265 Data truncated for column?

我有以下 MYSQL 声明:

UPDATE `db`.`appointment` SET `timezone` = 'America/New_York' WHERE (`id` = '114');

当我 运行 它时,我得到:

1 row(s) affected, 1 warning(s): 1265 **Data truncated** for column 'timezone' at row 1 Rows matched: 1  Changed: 1  Warnings: 1    0.110 sec

并且时区列不是 America/New_York,而是保存为 America/Ne

如何确保 完整 值被保存而不是 t运行cated?

这里的问题(@tadman 在评论中指出)是 column length 太小了。

它是 VARCHAR(10),当我将列更新为 VARCHAR(256) 时,它按预期工作。

我在尝试使用值更新列时也遇到了这个问题。 列和值都是十进制的。

我的不起作用的原因是我正在格式化要更新的值

例如

Update Account Set Balance = Format(NewValue, 2)

为了解决这个问题,我删除了格式化并将其设置为 NewValue 至于为什么我要格式化值 我担心数据附带的额外零,就像 100.000000000000 像这样。