Resumo : neste tutorial, você aprenderá como usar a UNIX_TIMESTAMP()
função MySQL para converter um valor de data e hora em um carimbo de data/hora Unix.
Introdução à função MySQL UNIX_TIMESTAMP()
Um carimbo de data/hora Unix apresenta o número de segundos que se passaram desde '1970-01-01 00:00:00'
o UTC.
A UNIX_TIMESTAMP()
função converte uma data em um carimbo de data/hora Unix. Aqui está a sintaxe da UNIX_TIMESTAMP()
função:
UNIX_TIMESTAMP([date])
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
date
: este parâmetro opcional especifica um valor de data que você deseja converter em um carimbo de data/hora Unix. Se você omitir, a função retornará o carimbo de data/hora Unix atual .
A UNIX_TIMESTAMP()
função retorna um número inteiro que representa o carimbo de data/hora Unix da data especificada.
Se date
contiver uma parte fracionária dos segundos, retornará UNIX_TIMESTAMP()
um número decimal que representa o carimbo de data/hora Unix.
Se a data for NULL
, a UNIX_TIMESTAMP()
função retornará NULL
.
Observe que se você passar uma data fora do intervalo para a função, ela retornará 0.
Exemplos de funções UNIX_TIMESTAMP() do MySQL
Vejamos alguns exemplos de uso da UNIX_TIMESTAMP()
função.
1) Exemplos básicos de funções UNIX_TIMESTAMP()
O exemplo a seguir usa a UNIX_TIMESTAMP()
função para converter uma data em um carimbo de data/hora Unix:
SELECT UNIX_TIMESTAMP('2023-10-19 10:45:30');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------------------------------+
| UNIX_TIMESTAMP('2023-10-19 10:45:30') |
+---------------------------------------+
| 1697687130 |
+---------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se o valor datetime contiver uma parte fracionária de segundos, retornará UNIX_TIMESTAMP()
um decimal. Por exemplo:
SELECT UNIX_TIMESTAMP('2023-10-19 10:45:30.9999');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------------------------------------------+
| UNIX_TIMESTAMP('2023-10-19 10:45:30.9999') |
+--------------------------------------------+
| 1697687130.9999 |
+--------------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se você omitir o valor da data, a função retornará o carimbo de data/hora Unix atual:
SELECT UNIX_TIMESTAMP();
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------+
| UNIX_TIMESTAMP() |
+------------------+
| 1697686981 |
+------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir retorna 0 porque a data é inválida:
SELECT UNIX_TIMESTAMP('2023-99-99 10:45:30');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------------------------------+
| UNIX_TIMESTAMP('2023-99-99 10:45:30') |
+---------------------------------------+
| 0.000000 |
+---------------------------------------+
1 row in set, 1 warning (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando a função UNIX_TIMESTAMP() com exemplo de tabela
Primeiro, crie uma nova tabela que armazene os dados do evento com carimbos de data/hora Unix:
CREATE TABLE events(
id INT AUTO_INCREMENT PRIMARY KEY,
event_name VARCHAR(50) NOT NULL,
event_time INT NOT NULL
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A events
tabela possui três colunas: id, event_name
e event_time
. O tipo de dados event_time
é um número inteiro que armazena os carimbos de data/hora Unix.
Segundo, insira algumas linhas na events
tabela:
INSERT INTO events(event_name, event_time )
VALUES
('MySQL Enterprise Workshop', UNIX_TIMESTAMP('2021-10-19 15:00:00')),
('MySQL HeatWave and Database Day', UNIX_TIMESTAMP('2021-12-31 23:00:00')),
('MySQL HeatWave Hands-on Lab', UNIX_TIMESTAMP('2022-06-01 12:20:00'));
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução usa a UNIX_TIMESTAMP()
função para converter valores de data em carimbos de data/hora Unix.
Terceiro, consulte os dados da events
tabela e formate os valores na event_time
coluna usando a FROM_UNIXTIME()
função:
SELECT
event_name,
FROM_UNIXTIME(event_time) AS event_time
FROM
events;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------------------------+---------------------+
| event_name | event_time |
+---------------------------------+---------------------+
| MySQL Enterprise Workshop | 2021-10-19 15:00:00 |
| MySQL HeatWave and Database Day | 2021-12-31 23:00:00 |
| MySQL HeatWave Hands-on Lab | 2022-06-01 12:20:00 |
+---------------------------------+---------------------+
3 rows in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
UNIX_TIMESTAMP()
função MySQL para converter um valor de data e hora em um carimbo de data/hora Unix.