Trabalhando com a data e hora do MySQL-Mariadb

Trabalhando com a data e hora do MySQL-Mariadb
Neste artigo, vou mostrar como trabalhar com os tipos de dados MySQL/Mariadb Data, Hora e DataTime. Então vamos começar.

Pré -requisitos:

Você deve ter MySQL ou MariaDB instalado no seu sistema operacional Linux (i.e. CENTOS/RHEL, Ubuntu/Debian). Se você precisar de assistência na instalação do MySQL/Mariadb, existem muitos artigos no Linuxhint.com que você pode verificar.

Criando mesas e linhas fictícias:

Vou usar um aniversário Tabela para demonstrar como trabalhar com tipos de dados de data e hora neste artigo. A mesa de aniversário tem um nome campo do tipo Varchar, a data campo do tipo DATA e a tempo campo do tipo TEMPO.

Você pode criar o aniversário Tabela da seguinte maneira.

> Crie aniversário de aniversário (
nome Varchar (20) não nulo,
data de data,
tempo
);

Se você deseja que o MySQL/Mariadb adicione automaticamente a data atual ou a hora atual, enquanto inseriu novas linhas no aniversário Tabela, você pode criar o aniversário Tabela da seguinte maneira.

> Crie aniversário de aniversário (
nome Varchar (20) não nulo,
data de data padrão current_date,
tempo padrão de tempo current_time
);

Aqui, Padrão current_date adiciona automaticamente a data atual ao data Colum se nenhum dado for fornecido para essa coluna durante a inserção. O mesmo caminho Padrão current_time adiciona automaticamente o tempo atual ao tempo coluna.

Trabalhando com data:

Você pode imprimir a data atual com o DATA ATUAL() função da seguinte forma:

> Selecione current_date ();

Se 'Bob' nasceu hoje, você pode adicionar 'bob' ao aniversário Tabela da seguinte maneira:

> Inserir no aniversário (nome, data) valores ('bob', current_date ());

Você também pode adicionar datas de nascimento específicas da seguinte forma:

> Inserir no aniversário (nome, data) valores ('lily', '1997-11-24');
> Inserir no aniversário (nome, data) valores ('Alex', '2001-11-24');

O estado atual da tabela de aniversário é o seguinte.

Você pode extrair apenas a parte do ano da data usando o ANO() função, a parte do mês usando o MÊS() função, a parte do dia usando o DIA() função da seguinte forma:

> Selecione o nome, ano (data), mês (data), dia (data) do aniversário;

Você pode encontrar o nome do mês de uma data usando MonthName () função.

> Selecione Nome, Data, MonthName (Data) no aniversário;

1 ano é igual a 52 semanas. Você pode encontrar a semana do ano usando o Semana do ano () função da seguinte forma:

> Selecione Nome, Data, Semana do ano (data) no aniversário;

Da mesma maneira, você pode obter o dia do ano usando o Dayofyear () função. 1 ano é igual a 365 dias. 366 dias em um ano bissexto.

> Selecione Nome, Data, Dayofyear (data) no aniversário;

Você pode encontrar o dia da semana de uma data usando o Dia da semana () função.

> Selecione o nome, data, dia da semana (data) no aniversário;

Aqui, 0 é segunda -feira, 1 é terça -feira, 2 é quarta -feira, 3 é quinta -feira, 4 é sexta -feira, 5 é sábado e 6 é domingo.

Você também pode encontrar o nome do dia da semana usando o Dayname () função.

> Selecione Nome, Data, Dayname (Data) no aniversário;

Trabalhando com o tempo:

Você pode encontrar o tempo atual do sistema usando o HORA ATUAL() função da seguinte maneira.

> Selecione current_time ();

A coluna de tempo do nosso aniversário A tabela é nula neste ponto.

> Selecione * no aniversário;

Vamos adicionar alguns valores de tempo fictício ao tempo coluna.

> Atualizar definição de aniversário time = "21:14:32" onde nome = "bob";
> Atualizar o conjunto de aniversário time = "11:20:30" onde nome = "lily";
> Atualizar o conjunto de aniversário time = "8:10:15" onde nome = "Alex";

Agora o aniversário A tabela deve parecer algo assim.

> Selecione * no aniversário;

Você pode encontrar a hora do tempo usando o HORA() função, o minuto usando o MINUTO() função, e a segunda usando o SEGUNDO() função da seguinte forma:

> Selecione o nome, hora (hora), minuto (horário), segundo (horário) do aniversário;

Trabalhando com data e hora:

Antes, eu armazenei a data e a hora em diferentes campos do aniversário mesa. Isso é impraticável. Se você precisar armazenar as informações de data e hora, você deve usar o DATA HORA tipo de dados.

Você pode criar uma nova mesa de aniversário Aniversário2 que usa o tipo de dados DateTime da seguinte forma:

> Crie a tabela aniversário2 (
nome Varchar (20) não nulo,
DT DateTime
);

Agora, importe dados do aniversário tabela para Aniversário2 Tabela da seguinte maneira:

> Inserir no aniversário2 Selecione o nome,
Concat (data, ", hora) como dt do aniversário;

É assim que o Aniversário2 A tabela deve parecer neste ponto.

> Selecione * no aniversário2;

Você pode converter o DateTime em segundos (registro de data e hora) usando o To_seconds () função da seguinte forma:

> Selecione o nome, to_seconds (dt) no aniversário2;

Todas as funções que usei no Trabalhando com data e Trabalhando com o tempo As seções deste artigo também funcionarão em campos de tempo de dados.

Adicionando e subtraindo datas:

Você pode adicionar e subtrair as datas em MySQL/MariaDB.

O Date_add () A função é usada para adicionar à data e Date_sub () A função é usada para subtrair da data. O Fomat of Date_add () e Date_sub () são os mesmos.

O formato do Date_add () função:

Date_add (dt, unidade Expr interval)

O formato do Date_sub () função:

Date_sub (DT, unidade Expr interval)

Aqui, INTERVALO é uma palavra -chave.

dt é o DATA, TEMPO ou DATA HORA ao qual você deseja adicionar ou subtrair de.

unidade pode ser ANO, MÊS, DIA, SEMANA, HORA, MINUTO, SEGUNDO.

expr é uma quanidade numérica do definido unidade.

Por exemplo, você pode adicionar um ano à data usando o Date_add () função da seguinte forma:

> Selecione o nome, dt, date_add (dt, intervalo 1 ano) no aniversário2;

Da mesma maneira, você pode subtrair um mês usando o Date_sub () função da seguinte forma:

> Selecione o nome, dt, date_sub (dt, intervalo 1 mês) no aniversário2;

Encontrando a diferença entre 2 datas:

Você pode encontrar a diferença entre 2 datas usando o Timestampdiff () função.

O formato do Timestampdiff () função é:

Timestampdiff (Unidade, DT1, DT2)

Aqui, dt1 e dt2 pode ser do tipo DATA ou DATA HORA.

O Timestampdiff () Função retorna (dt2 - dt1) no definido unidade.

O unidade pode ser ANO, MÊS, DIA, SEMANA, HORA, MINUTO, SEGUNDO.

Você pode encontrar a idade (em segundos) de cada pessoa na mesa de aniversário da seguinte forma:

> Selecione o nome, current_timestamp (), dt, timestampdiff (segundo,
dt, current_timestamp ()) como AGE_SECONDS DO BRINHOLE2;

Da mesma maneira, você pode encontrar a idade em dias da seguinte forma:

> Selecione o nome, current_timestamp (), dt, timestampdiff (dia,
dt, current_timestamp ()) como AGE_DIA DA BRINHANCE2;

Você também pode encontrar a idade em anos da seguinte maneira:

> Selecione o nome, current_timestamp (), dt, timestampdiff (ano, dt,
Current_timestamp ()) como idade_ ano de aniversário2;

Então, é basicamente assim que você trabalha com a data e hora do MySQL/Mariadb. Obrigado por ler este artigo.