如何使用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)
使用insert命令在表中插入一些记录。
查询如下所示:
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)
阅读更多:MySQL 教程