Pesquisa de site

Como atualizar um campo de carimbo de data/hora de uma tabela MySQL?


Vamos primeiro criar uma tabela:

mysql> create table DemoTable
   -> (
   -> PunchOut timestamp,
   -> PunchStatus tinyint(1)
   -> );
Query OK, 0 rows affected (0.51 sec)

Insira alguns registros na tabela usando o comando insert:

mysql> insert into DemoTable values('2019-01-31 6:30:10',1);
Query OK, 1 row affected (0.22 sec)

mysql> insert into DemoTable values('2019-02-06 4:10:13',0);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('2018-12-16 03:00:30',0);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('2016-11-25 02:10:00',1);
Query OK, 1 row affected (0.22 sec)

Exiba todos os registros da tabela usando instruções select:

mysql> select *from DemoTable;

Saída

+---------------------+-------------+
| PunchOut            | PunchStatus |
+---------------------+-------------+
| 2019-01-31 06:30:10 |           1 |
| 2019-02-06 04:10:13 |           0 |
| 2018-12-16 03:00:30 |           0 |
| 2016-11-25 02:10:00 |           1 |
+---------------------+-------------+
4 rows in set (0.00 sec)

Aqui está a consulta para atualizar o campo timestamp de uma tabela MySQL. Definimos a data atual para os campos com PunchStatus 0:

Nota - A data e hora atuais são 30/06/2019 13:43:45

mysql> update DemoTable set PunchOut=now() where PunchStatus=0;
Query OK, 2 rows affected (0.19 sec)
Rows matched: 2  Changed: 2 Warnings: 0

Vamos verificar os registros da tabela mais uma vez:

mysql> select *from DemoTable;

Saída

+---------------------+-------------+
| PunchOut            | PunchStatus |
+---------------------+-------------+
| 2019-01-31 06:30:10 |           1 |
| 2019-06-30 13:43:45 |           0 |
| 2019-06-30 13:43:45 |           0 |
| 2016-11-25 02:10:00 |           1 |
+---------------------+-------------+
4 rows in set (0.00 sec)

Artigos relacionados: