Você sabe o que é o timestamp e o UTC? Como converter (UTC) em current time zone no SQL?

    Fala pessoal, belezura? Espero que estejam todos muito bem! Hoje eu quero trazer para vocês um conteúdo bem bacana!  "ALERTA DE SPOILER" Esse conteúdo vai complementar a nova série que farei nesse blog, onde irei falar de Extend Events!  So, let's go :)

  Afinal, o que é TIMESTAMP?  TimeStamp é simplesmente um ponto único em uma linha do tempo, se estamos falando de uma linha no tempo, precisamos de um marco inicial, certo? Esse marco inicial do timestamp é chamada de "Unix Epoch", que seria "1970-01-01T00:00Z (1 de janeiro de 1970, à meia-noite)", em UTC 1.


Abaixo, coloquei uma imagem onde eu mostro como isso funciona, podemos ver  que existe um marco zero e o timestamp é o tempo decorrido, geralmente em segundos ou milissegundos, desde o marco zero até aquele instante no tempo, e esse instante no tempo é o mesmo no mundo todo, vamos pegar esse exemplo "1556322834".


 Muitas linguagens de programação já converte esse timestamp em um horário, digamos mais legível, vamos observar a tabela abaixo:



Podemos perceber que esse mesmo timestamp possui horários "diferentes",  não é diferente está apenas em outro fuso-horário, é aqui que começa a parte 2 desse mesmo post!  Muitos de vocês já conhecem o UTC, mas realmente sabem o que ele é? Eu já vi algumas pessoas ao analisar um problema, não se atentar que aquela coluna estava em UTC  e por isso a análise foi errada.  Bem UTC em inglês significa "Coordinated Universal Time" ou "Tempo Universal Coordenado" em bom e velho português,  o UTC é o fuso-horário padrão onde é calculado todos os demais fuso-horários, e ele se inicia no famoso "Greenwich Mean Time".


A imagem abaixo mostra muito bem isso, temos o "Marco zero" e tudo pra frente você adiciona horas, ao contrário disso você subtrai, por isso o horário de Brasilia estar (3h -) ou (utc -3).



Nice hein! Agora vamos um exemplo básico!


Nesse exemplo, eu subi um extend event durante um monitoramento no cliente, o monitoramento foi de duas horas em uma war room, eu precisava mostrar a hora de acordo com o fuso horário do servidor, que nesse caso é o horário de brasilia, eu utilizo bastante isso quando uso extend event.




Abaixo deixo a query para vocês, caso precisem!

select dateadd(hh, datediff(hh, getutcdate(), getdate()), [timestamp (UTC)])


Bem galera, por hoje é tudo isso só! Um abc! See you.

 

Comentários

Postagens mais visitadas deste blog

Tuning no Postgres utlizando View Materializada

Como realizei um tuning que caiu o tempo de execução de 8h para 7minutos!

Procedure que cria um script de insert.