Este tutorial abordará os conceitos básicos de trabalhar com o tipo de dados de registro de data e hora em MySQL.
O tipo de dados de registro de data e hora permite armazenar valores de data e hora no formato do timestamp como aaaa-mm-dd hh: mm: ss.
O valor de um tipo de dados de registro de data e hora em MySQL varia de 1970-01-01 00:00:01 a 2038-01-19 03:14:07 no UTC.
Ao armazenar um valor de carimbo de data / hora, o MySQL converterá o horário atual para o UTC e o armazenará na tabela de destino. O MySQL converterá o valor da UTC para o horário atual durante a recuperação. É bom lembrar que esse recurso se aplica apenas ao tipo de dados de data e hora.
Portanto, como o fuso horário pode ser definido em uma determinada sessão, meu SQL permite que você recupere o mesmo valor armazenado, desde que o fuso horário permaneça constante.
Exemplo de fuso horário do MySQL
Vamos cobrir um exemplo de como trabalhar com o tipo de dados de registro de data e hora em MySQL. Considere a tabela abaixo com uma coluna de data e hora.
criar tempdb de banco de dados;
use tempdb;
Crie amostra de tabela (
ID int Auto_increment Chave primária,
t timestamp
);
set time_zone = '+03:00';
A consulta acima cria um banco de dados de amostra e uma tabela com uma coluna de registro de data e hora. Também definimos o fuso horário para a sessão usando o parâmetro time_zone.
Em seguida, podemos inserir valores de data e hora na coluna, como mostrado na consulta abaixo:
inserir na amostra (t)
Valores ('2022-10-10 23:45:23'),
('2020-12-10 13:43:32'),
('1990-10-10 16:23:32');
Em seguida, podemos selecionar os valores de registro de data e hora da tabela, como mostrado:
selecione * da amostra;
Resultado:
Demonstrando o uso do fuso horário no registro de data e hora
Como mencionado, se o fuso horário for constante, podemos obter o mesmo valor que salvamos na tabela, como demonstrado acima.
Vamos ver quais valores obtemos se alterarmos o valor do fuso horário:
set time_zone = '-7: 00';
selecione * da amostra;
Se executarmos a declaração acima, devemos obter uma tabela com o valor como mostrado:
Observe que obtemos valores diferentes do que salvamos. Isso ocorre devido à mudança no fuso horário.
Usando a inicialização automática usando o tipo de dados de registro de data e hora
Podemos inicializar automaticamente uma determinada coluna definindo a restrição padrão para o current_timestamp.
Como o caso, o MySQL inserirá o valor atual do registro de data e hora em uma determinada linha, conforme mostrado no exemplo abaixo:
Crie amostra de tabela (
ID int Auto_increment Chave primária,
t timestamp padrão current_timestamp
);
Podemos então inserir valores na tabela como mostrado:
Insira na amostra (id)
valores (1), (2), (3);
Como você pode notar, não fornecemos a coluna T. Isso deve forçar o MySQL a usar o valor padrão como mostrado:
selecione * da amostra;
Saída:
Como você pode ver, todas as linhas compartilham o mesmo valor de carimbo de data e hora que indica o tempo de inserção. Este recurso é referido como inicialização automática.
Conclusão
Neste exemplo, discutimos os fundamentos de trabalhar com o tipo de dados de registro de data e hora em MySQL.