微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在SQL的日期字段中插入日期

如何解决如何在SQL的日期字段中插入日期

我正在编写一个简单的插入查询。这是桌子:

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(20) | YES  |     | NULL    |       |
| course | varchar(50) | YES  |     | NULL    |       |
| sdate  | date        | YES  |     | NULL    |       |
| edate  | date        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

这是查询

insert into dummy values('Tanzeel','sql Bootcamp',5/28/2020 12:00 AM,11/20/2020 12:00 AM);

insert into dummy values('John','ReactJS for Beginners',6/28/2020 12:00 AM,10/20/2020 12:00 AM);

但是我遇到了这个错误

您的sql语法有误;请查看与您的MysqL服务器版本相对应的手册,以在第1行的'12:00 AM,11/20/2020 12:00 AM)'附近使用正确的语法

日期格式显然有问题,所以我检查了此链接

object_detection(repository)

我尝试将日期放在单引号中,这会导致此错误

错误:1292(22007):错误的日期值:第1行的“日期”列为“ 5/28/2020 12:00 AM”

我也尝试过以下格式:

Date and Time Conversions Using SQL Server

解决方法

对于MySql,您的日期格式为'%m/%d/%Y %h:%i %p'

因此可以使用str_to_date()进行转换:

insert into dummy values(
  'Tanzeel','SQL Bootcamp',str_to_date('5/28/2020 12:00 AM','%m/%d/%Y %h:%i %p'),str_to_date('11/20/2020 12:00 AM','%m/%d/%Y %h:%i %p')
);

或以默认格式插入它们:

insert into dummy values(
  'Tanzeel','2020-05-28 00:00:00','2020-11-20 00:00:00'
);
,

您不应该依赖默认的日期格式。相反,通常最好将其明确声明。例如:

INSERT INTO dummy
VALUES      ('Tanzeel',STR_TO_DATE('2020-05-28 12:00','%Y-%m-%d %H:%i'),STR_TO_DATE('2020-20-11 12:00','%Y-%m-%d %H:%i')
            );
,

最简单的方法是使用标准SQL 时间戳文字,该文字要求使用“ YYYY-MM-DD HH:Mi:SS”格式

insert into tab values(
  'Tanzeel',timestamp '2020-05-28 00:00:00',timestamp '2020-11-20 00:00:00'
);

但是如果您有DATE列,则不需要插入时间戳,请使用 date文字

insert into tab values(
  'Tanzeel',date '2020-05-28',date '2020-11-20'
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。