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', '哈哈哈哈哈');

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

相关推荐
ApacheSeaTunnel1 小时前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
DARLING Zero two♡1 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql
活宝小娜2 小时前
mysql详细安装教程
数据库·mysql·adb
Database_Cool_2 小时前
什么是数据仓库物化视图?AnalyticDB MySQL 实时物化视图能力解析
人工智能·mysql·阿里云
Database_Cool_3 小时前
即席查询(Ad-Hoc)数据库选型:AnalyticDB MySQL 秒级 Ad-Hoc 分析方案
数据库·mysql
一杯奶茶¥3 小时前
水果销售网站 CRM客户信息管理系统 超市管理系 酒店管理系统 健身房管理系统 在线音乐网站 校园招聘系统
java·vue.js·spring boot·mysql·spring·java项目
用户800391387833 小时前
使用 Gemini 解决 MySQL 常见问题
mysql
Database_Cool_4 小时前
什么是湖仓一体?和数据仓库的本质区别(附 AnalyticDB MySQL 湖仓一体方案)
数据库·数据仓库·mysql
XZ-0700016 小时前
MySQL事务
数据库·mysql·oracle
云水一下6 小时前
从零开始学 PHP 系列(六):MySQL 数据库与 PHP 交互——让数据真正“住”进服务器
数据库·mysql·php