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 (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 (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');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";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 (Agora, importe dados do aniversário tabela para Aniversário2 Tabela da seguinte maneira:
> Inserir no aniversário2 Selecione o nome,É 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,Da mesma maneira, você pode encontrar a idade em dias da seguinte forma:
> Selecione o nome, current_timestamp (), dt, timestampdiff (dia,Você também pode encontrar a idade em anos da seguinte maneira:
> Selecione o nome, current_timestamp (), dt, timestampdiff (ano, dt,Então, é basicamente assim que você trabalha com a data e hora do MySQL/Mariadb. Obrigado por ler este artigo.