【发布时间】:2014-05-02 07:17:43
【问题描述】:
我有两列 int 类型的 startdate 和 enddate。这些列用于存储时间戳数据。
现在我必须从这个时间戳中提取日期部分,将其转换回时间戳并将其存储在 int 类型的另一列 startdate1 中
但在执行此操作时,我收到警告“行中 startDate1 列的数据被截断”。
sql 查询是:-
ALTER TABLE `ServiceRule` ADD COLUMN `startDate1` INT(11) NULL DEFAULT NULL AFTER `endDate` , ADD COLUMN `endDate1` INT(11) NULL DEFAULT NULL AFTER `startDate1`;
update `ServiceRule` set `startDate1`= TIMESTAMP(DATE(from_unixtime(`startDate`)));
update `ServiceRule` set `endDate1`= TIMESTAMP(DATE(from_unixtime(`endDate`)));
现在,如果我将 startDate1 和 endDate1 的数据类型更改为 TIMESTAMP,startDate1 的第一个更新查询将成功运行。 但是 endDate1 更新查询显示警告“行中列 'endDate1' 的值超出范围”。
浏览解决方案后,我知道如果输入值大于列数据类型范围,则会发生这种情况。
任何人都可以尝试帮助我吗? 提前致谢。 :)
【问题讨论】: