我有一张带有日期时间栏的桌子.

我这样做了(注意:"2011-12-18 13:17:17"是前一个SELECT从DATETIME字段中给我的值):

UPDATE products SET former_date=2011-12-18 13:17:17 WHERE id=1

得到

    1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '13:17:17 WHERE itemid=1' at line 1

没有被引用的字符串,但我理解的第一个时间是错的?

EDIT:

我问这个问题的原因是:我有一个特殊的定义,DATETIME,不知何故,我认为它在处理日期时给了我一些安全性和其他优势.现在看来,它只是一个专门的VARCHAR,可以这么说.

谢谢你的回答,看来这确实是你想要的行为.

推荐答案

根据MySQL文档,您应该能够将datetime字符串括在单引号中('YYYY-MM-DD HH:MM:SS'),它应该可以工作.看这里:Date and Time Literals

因此,在您的情况下,命令应如下所示:

UPDATE products SET former_date='2011-12-18 13:17:17' WHERE id=1

Mysql相关问答推荐

如何重新采样SQL数据库

在MySQL中存储一条帖子的点赞数量

无法删除或更新父行:外键约束无法删除表

S在我的SQL代码中的外键出了什么问题?

约会时的意外行为

JPA对具有动态键和动态值的JSON列的原生查询

在MySQL查询中查找和替换表内的值

GoRM中行最大值查询返回"0"

实体内约束的唯一增量 ID 生成

如何清除mysql 8 innodb中的数据库缓存

获取 MySQL 中每一行之间负差的总和

如何创建将行转换为列的 MySQL 查询?

包含 group_contact 的视图的问题

提高mysql导入速度

用序列号mysql更新列

如何通过 mysql workbench 将数据导入 mysql 数据库?

MySQL:在 Select 语句中自动增加临时列

PDO:MySQL 服务器已消失

MySQL - 表'my_table'没有被锁定表锁定

MySQL获取两个值之间的随机值