MySQL Timestamp Type

MySQL Timestamp Type

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.