运行UPDATE时…datetime = NOW(); 将所有更新的行在mysql中具有相同的日期/时间吗?

now()函数返回恒定时间,该时间表示任何语句开始执行的时间。该sysdate()函数返回与MySQL 5.0.13中执行语句完全相同的日期时间。

假设如果要使用now()in触发器或存储过程更新datetime ,则该now()方法返回触发和存储过程开始执行的时间。

这是使用进行更新的演示now()。让我们首先创建一个表。创建表的查询如下-

mysql> create table NowDemo
-> (
-> DueDateTime datetime
-> );

使用insert命令在表中插入记录。查询如下-

mysql> insert into NowDemo values('2018-12-19');

mysql> insert into NowDemo values('2018-11-10');

mysql> insert into NowDemo values('2017-11-21');

使用select语句检查表中的所有记录。查询如下-

mysql> select *from NowDemo;

输出结果

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-19 00:00:00 |
| 2018-11-10 00:00:00 |
| 2017-11-21 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

这是用于更新datetime列的查询,该列now()用于更新所有值。

情况1-使用 now()

查询如下-

mysql> update NowDemo set DueDateTime = now();
Rows matched: 3 Changed: 3 Warnings: 0

使用选择命令检查更新的值。查询如下-

mysql> select *from NowDemo;

以下是显示所有行现在具有相同日期时间的输出-

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-20 16:10:00 |
| 2018-12-20 16:10:00 |
| 2018-12-20 16:10:00 |
+---------------------+
3 rows in set (0.00 sec)

情况2-使用 sysdate()

查询如下-

mysql> update NowDemo set DueDateTime = sysdate();
Rows matched: 3 Changed: 3 Warnings: 0

使用select语句从表中检查更新的值。查询如下-

mysql> select *from NowDemo;

以下是显示所有行现在具有相同日期时间的输出-

+---------------------+
| DueDateTime         |
+---------------------+
| 2018-12-20 16:10:35 |
| 2018-12-20 16:10:35 |
| 2018-12-20 16:10:35 |
+---------------------+
3 rows in set (0.00 sec)