【问题标题】:What is wrong with datetime updating?日期时间更新有什么问题?
【发布时间】:2017-10-17 18:22:42
【问题描述】:
UPDATE `tasks` SET `column1` = NOW()+29100 WHERE `id` = "237759717" 

错误代码:1292。日期时间值不正确:第 1 行的列 'column1' 的日期时间值不正确:'20171017139327'

UPDATE `tasks` SET `column1` = (NOW()+29100) WHERE `id` = "237759717"

1 行受影响行匹配:1 更改:1 警告:0

稍后:

UPDATE `tasks` SET `column1` = NOW()+29100 WHERE `id` = "237759717" 

1 行受影响行匹配:1 更改:1 警告:0

UPDATE `tasks` SET `column1` = (NOW()+28260) WHERE `id` = "237759717"   

错误代码:1292。不正确的日期时间值:“20171017139301”列“column1”在第 1 行

我在 mysql 工作台上工作。 column1 的数据类型是 DATETIME;

CREATE TABLE tasks (
  id int,
  column1 DATETIME
);

【问题讨论】:

  • 我认为最好尝试使用 DATE_ADD() 以获得更好的可靠性。 dev.mysql.com/doc/refman/5.5/en/…
  • 我相信您想在 now() 函数中添加秒数??如果是这样,您需要使用NOW() + INTERVAL [number] SECOND

标签: mysql datetime


【解决方案1】:

您不能将整数值添加到字符串。 NOW() 产生为字符串。为了遵守,MySQL 通过替换字符串(破折号)的字符将NOW() 的值强制为整数。

你追求的是DATE_ADD(NOW(), INTERVAL 29100 SECOND);而不是NOW() + 29100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    相关资源
    最近更新 更多