如何使用 MySQL 更新 datetime 字段的日期?


使用算术运算符减号 (-) 更新 datetime 字段的日期。

语法如下

update yourTableName
set yourDateTimeColumnName=yourDateTimeColumnName - interval yourValue day
where date(yourDateTimeColumnName)=’yourDateValue’;

为了理解上述语法,我们来创建一个表。创建表的查询如下

mysql> create table updateDateDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> ArrivalDate datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

使用插入命令在表中插入一些记录。

查询如下

mysql> insert into updateDateDemo(ArrivalDate) values('2011-01-13');
Query OK, 1 row affected (0.19 sec)
mysql> insert into updateDateDemo(ArrivalDate) values('2013-04-21');
Query OK, 1 row affected (0.11 sec)
mysql> insert into updateDateDemo(ArrivalDate) values('2016-12-22');
Query OK, 1 row affected (0.14 sec)
mysql> insert into updateDateDemo(ArrivalDate) values('2017-02-25');
Query OK, 1 row affected (0.27 sec)
mysql> insert into updateDateDemo(ArrivalDate) values('2018-08-19');
Query OK, 1 row affected (0.17 sec)
mysql> insert into updateDateDemo(ArrivalDate) values('2019-02-27');
Query OK, 1 row affected (0.24 sec)

使用 select 语句显示表中的所有记录。

查询如下

mysql> select *from updateDateDemo;

以下为输出

+----+---------------------+
| Id | ArrivalDate         |
+----+---------------------+
| 1  | 2011-01-13 00:00:00 |
| 2  | 2013-04-21 00:00:00 |
| 3  | 2016-12-22 00:00:00 |
| 4  | 2017-02-25 00:00:00 |
| 5  | 2018-08-19 00:00:00 |
| 6  | 2019-02-27 00:00:00 |
+----+---------------------+
6 rows in set (0.00 sec)

这里是对 datetime 字段的日期进行更新的查询

mysql> update updateDateDemo
   -> set ArrivalDate=ArrivalDate-interval 7 day
   -> where date(ArrivalDate)='2019-02-27';
Query OK, 1 row affected (0.13 sec)
Rows matched: 1 Changed: 1 Warnings: 0

现在从表中检查更新的记录

mysql> select *from updateDateDemo;

以下为输出

+----+---------------------+
| Id | ArrivalDate         |
+----+---------------------+
| 1  | 2011-01-13 00:00:00 |
| 2  | 2013-04-21 00:00:00 |
| 3  | 2016-12-22 00:00:00 |
| 4  | 2017-02-25 00:00:00 |
| 5  | 2018-08-19 00:00:00 |
| 6  | 2019-02-20 00:00:00 |
+----+---------------------+
6 rows in set (0.00 sec)

更新日期:30-Jul-2019

11K+ 浏览量

开始您的职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.