Função MySQL UNIX_TIMESTAMP()

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 datecontiver 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 eventstabela possui três colunas: id, event_namee 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *