mysql inset bug

在 SQL 中,日期值需要用单引号包围,这是因为 SQL 将日期值视为字符串格式。数据库引擎在处理这些值时会将它们解析为适当的日期类型。如果不使用单引号,数据库引擎会将它们视为数字或列名,从而导致语法错误。

日期格式

MySQL 支持的标准日期格式为 YYYY-MM-DD。日期和时间值应遵循此格式,并用单引号包围。

示例

以下是一个示例,展示了如何正确插入数据,包括日期值:

sql 复制代码
INSERT INTO emp (id, sex, name, brithday, resume) 
VALUES (1, '女', '刘全', '1999-11-12', '哈哈哈哈哈');

错误原因

如果你不使用单引号包围日期值,MySQL 会认为这是无效的语法。例如:

sql 复制代码
INSERT INTO emp (id, sex, name, brithday, resume) 
VALUES (1, '女', '刘全', 1999-11-12, '哈哈哈哈哈');

这会导致 MySQL 尝试计算 1999 - 11 - 12 的结果,并将其插入到 brithday 列,这显然是无效的操作,从而引发语法错误。

详细说明

  1. 字符串和日期需要单引号:这可以确保数据库引擎将这些值视为文本数据,而不是数值或表达式。
  2. 使用正确的日期格式 :使用 YYYY-MM-DD 格式,这是 MySQL 默认接受的日期格式。

完整示例

  1. 连接到 MySQL

    sh 复制代码
    mysql -u root -p
  2. 选择数据库

    sql 复制代码
    USE your_database_name;
  3. 创建表(如果尚未创建):

    sql 复制代码
    CREATE TABLE emp (
        id INT,
        sex VARCHAR(10),
        name VARCHAR(50),
        brithday DATE,
        resume TEXT
    );
  4. 插入数据

    sql 复制代码
    INSERT INTO emp (id, sex, name, brithday, resume) 
    VALUES (1, '女', '刘全', '1999-11-12', '哈哈哈哈哈');

通过这种方式,你应该能够正确插入数据而不会遇到语法错误。

相关推荐
Sirens.8 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
Oo大司命oO11 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
三十岁老牛再出发14 小时前
07.26每日总结
linux·c语言·mysql
xieliyu.15 小时前
MySQL 存储过程详解:概念、创建与删除全教程
开发语言·数据库·mysql
ttwuai16 小时前
AI 生成后台删除按钮后,MySQL 软删除和唯一索引怎么验
数据库·mysql·golang
想你依然心痛16 小时前
用MySQL玩转数据可视化:从SQL查询到动态图表的完整实战
sql·mysql·信息可视化
Mico1818 小时前
MySQL 8.0.35 主从延迟模拟与解决
mysql
不知疲倦的仄仄18 小时前
MySQL/Read View快照/MVCC/串行化
java·数据库·mysql
Mico1820 小时前
MySQL 5.7.35 升级到 8.0.35 — 原地升级(主从架构方式)
mysql
万亿少女的梦16821 小时前
基于Spring Boot的乐助在线助农系统设计与实现
java·spring boot·mysql·敏感词过滤·助农系统