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)