O MySQL tem funções específicas que permitem obter a data e a hora atual (do momento). Este dado pode ser usado em outras funções, declarações ou fornecidos a scripts externos, em PHP, Perl, Python etc.
Uma situação comum é uma aplicação necessitar “saber” qual a data ou hora atual a partir do seu servidor MySQL, tal como aquelas produzidas a partir datestamp ou timestamp.
Às vezes, a aplicação faz uso desta informação apenas para compor um log ou o nome de um arquivo (de backup, por exemplo).
Este tipo de informação, contudo, é muito útil para fazer cálculos envolvendo datas ou horários em relação à data e hora atual — e pode ser obtida através de 3 funções:
NOW()
— retorna ambos, data e hora correntesCURDATE()
— retorna a data correnteCURTIME()
— retorna a hora corrente
Veja um exemplo simples rápido de uso destas funções (tudo em uma só linha de comando do MySQL):
SELECT CURDATE(), CURTIME(), NOW();
+------------+-----------+---------------------+
| CURDATE() | CURTIME() | NOW() |
+------------+-----------+---------------------+
| 2015-06-14 | 15:51:46 | 2015-06-14 15:51:46 |
+------------+-----------+---------------------+
1 row in set (0.00 sec)
… ou assim:
SELECT CURDATE() AS "Data ATual", CURTIME() AS "Hora atual", NOW() AS "Este momento";
+------------+------------+---------------------+ | Data ATual | Hora atual | Este momento | +------------+------------+---------------------+ | 2015-06-14 | 15:50:33 | 2015-06-14 15:50:33 | +------------+------------+---------------------+ 1 row in set (0.01 sec)
As funções CURRENT_TIMESTAMP() e SYSDATE(), são sinônimas de NOW(). Veja:
SELECT CURRENT_TIMESTAMP();
_
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2015-06-14 15:53:55 |
+---------------------+
1 row in set (0.00 sec)
ou
SELECT SYSDATE();
_
+---------------------+
| SYSDATE() |
+---------------------+
| 2015-06-14 15:54:21 |
+---------------------+
1 row in set (0.00 sec)
Da mesma forma, CURRENT_DATE() e CURRENT_TIME() são sinônimos de CURDATE() e CURTIME(). Veja o exemplo:
SELECT CURRENT_DATE(), CURRENT_TIME();
_
+----------------+----------------+
| CURRENT_DATE() | CURRENT_TIME() |
+----------------+----------------+
| 2015-06-14 | 16:07:13 |
+----------------+----------------+
1 row in set (0.00 sec)