MySQL CURRENT_TIME

Resumo : neste tutorial, você aprenderá como usar a CURRENT_TIMEfunção MySQL para obter a hora atual.

Introdução à função MySQL CURRENT_TIME

A CURRENT_TIMEfunção retorna a hora atual. Aqui está a sintaxe da CURRENT_TIMEfunção:

CURRENT_TIMELinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O CURRENT_TIMEnão aceita nenhum argumento e retorna o valor da hora atual 'hh:mm:ss'se for usado em um contexto de string e hhmmssse for usado em um contexto numérico.

Além da CURRENT_TIMEfunção, você pode usar a CURRENT_TIME()função ou CURTIME()função para obter a hora atual. E você pode usar essas funções de forma intercambiável porque são sinônimos.

Observe que você não pode usar

Exemplo de função MySQL CURRENT_TIME

Vejamos alguns exemplos de uso da CURRENT_TIMEfunção.

1) Exemplos simples de funções CURRENT_TIME

O exemplo a seguir usa a CURRENT_TIMEfunção para obter a hora atual:

SELECT CURRENT_TIME;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+--------------+
| CURRENT_TIME |
+--------------+
| 09:36:20     |
+--------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, a CURRENT_TIMEfunção retorna a hora atual como uma string no formato 'hh:mm:ss'. A razão é que usamos a CURRENT_TIMEfunção no contexto de string.

Se usarmos a CURRENT_TIMEfunção em um contexto numérico, ela retornará a hora atual no hhmmssformato mostrado no exemplo a seguir:

SELECT CURRENT_TIME + 0;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

93620Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A saída 93620 possui três partes:

  • Hora: 9
  • Minutos: 36
  • Segundos: 20

2) Usando o MySQL CURRENT_TIME com dados da tabela

No exemplo a seguir, mostraremos como usar a CURRENT_TIMEfunção para consultar dados de uma tabela.

Primeiro, crie uma nova tabela chamada eventscom a seguinte estrutura:

CREATE TABLE events (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    start_date DATE NOT NULL,
    start_time TIME NOT NULL
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira algumas linhas na eventstabela:

INSERT INTO events (name, start_date, start_time) 
VALUES
('Tech Conference', '2023-10-18', '10:00:00'),
('AI Summit', '2023-10-18', '14:30:00'),
('WebDev World', '2023-10-18', '09:45:00');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, use a CURRENT_TIMEfunção para obter os eventos que ainda não começaram 2023-10-18:

SELECT 
  * 
FROM 
  events 
WHERE 
  start_date = '2023-10-18' 
  and start_time > CURRENT_TIME;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----+-----------+------------+------------+
| id | name      | start_date | start_time |
+----+-----------+------------+------------+
|  2 | AI Summit | 2023-10-18 | 14:30:00   |
+----+-----------+------------+------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que a consulta retornará o resultado com base no horário atual quando você a executar.

Valor de hora atual padrão

Observe que você não pode usar a CURRENT_TIMEfunção , CURRENT_TIME()ou CURTIME()como valor padrão para uma coluna em uma tabela. Portanto, as seguintes declarações resultarão em um erro:

CREATE TABLE test(
  started_at TIME DEFAULT CURRENT_TIME
);

CREATE TABLE test(
  started_at TIME DEFAULT CURRENT_TIME()
);

CREATE TABLE test(
  started_at TIME DEFAULT CURTIME()
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para usar a hora atual como valor padrão para uma coluna, você usa DATETIME ou TIMESTAMP como o tipo da coluna e a função NOW() como o valor padrão. Por exemplo:

CREATE TABLE test(
  started_at DATETIME DEFAULT CURTIME()
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a CURRENT_TIMEfunção para obter a hora atual como uma string no formato 'hh:mm:ss'ou como um número no formato hhmmss.

Deixe um comentário

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