mysql - MySql 在给定时间后删除行。错误 1292 不正确的日期时间值:时间戳上的“1537019628”
问题描述
我需要删除表警报中早于给定日期的行。我有一个 date_created 列,它是一个自动时间戳设置为默认值。当它加载执行此代码时,我从我的 Windows 窗体运行查询:
delete from shopmanager.alerts
where date_created < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 5 DAY))
它在 foirm 中不起作用,所以我在 Workbench 中尝试了它并收到消息:
0 行受影响,1 个警告:1292 日期时间值不正确:第 1 行的列“date_created”的“1537019628”
date_created 设置为 TIMESTAMP,默认值为 CURRENT_TIMESTAMP。为什么它在它自己创建的日期返回此错误?我究竟做错了什么?
解决方案
在 Michael Berkowski 发表评论之后,这是对遇到此问题的其他任何人都非常有效的代码修改:
delete from shopmanager.alerts where date_created < (DATE_SUB(NOW(), INTERVAL 5 DAY))
推荐阅读
- python-3.x - 如何在 python 模板中将 $ 作为字符串而不是变量?
- php - 从 json 设置选择选项
- regex - 是否有一个正则表达式可以将前 4 个字符添加到字符串的末尾,将后 4 个字符添加到字符串的开头?
- scala - 如何注入随机数。加特林的用户?
- android - 将提交按钮添加到 SearchView
- material-ui - 将 @material-ui/core 与 NextJS/React 一起使用时的 FOUC
- ios - 呼叫目录分机 - 未找到分机
- postgresql - 无法创建数据库 - psql:致命:角色“dyadav”不存在 - Mac OS
- excel - 如何跳过计算出现在另外 2 列集中的 2 列中的相同值集
- python - 点安装
塞住了。弹出从 pip==9.0.1 升级到 pip==19.0.3 的消息。如何使用 pip 9.0.1 安装任何新软件包?