CodeGym /Cursos /SQL SELF /Tipos de dados pra trabalhar com data e hora: DATE...

Tipos de dados pra trabalhar com data e hora: DATE, TIME, TIMESTAMP

SQL SELF
Nível 15 , Lição 4
Disponível

Quantas vezes você já viu apps que trabalham com datas e horários? Pedidos online, agendas, histórico de mudanças no banco — tudo depende de guardar o tempo certinho. O PostgreSQL tem ferramentas poderosas pra lidar com isso, e, claro, tabelas com datas não são tabelinhas assustadoras cheias de relógios, mas sim uma estrutura massa pra analisar e organizar eventos.

Os tipos pra data e hora servem pra:

  • Guardar só a data DATE, só a hora TIME ou os dois juntos TIMESTAMP.
  • Fazer operações tipo adicionar dias, calcular diferença entre datas e filtrar registros por critérios de tempo.
  • Trabalhar com fusos horários (mas isso é papo pra outra aula).

Tipos de dados: DATE, TIME, TIMESTAMP

Tipo de dado DATE

O tipo DATE serve pra guardar só a data, sem hora. Ele salva ano, mês e dia. Esse tipo é útil quando:

  • Você precisa guardar o aniversário do usuário.
  • A data do evento importa, mas o horário não faz diferença.

Exemplo de formato: YYYY-MM-DD (ano-mês-dia).

Exemplo:

id name - VARCHAR(100) event_date - DATE
1 SQL Workshop 2025-06-15
2 Python 2025-06-17
3 Java Courses 2025-06-25

Tipo de dado TIME

O tipo TIME é pra guardar só a hora. Ele é útil quando:

  • Você quer salvar um horário, tipo o começo do expediente.
  • O horário importa, mas a data não.

Exemplo de formato: HH:MI:SS (hora:minuto:segundo).

Exemplo:

id task_name - VARCHAR(100) start_time - TIME
1 Team Meeting 09:00:00
2 Code Review 11:30:00
3 Client Call 15:00:00

Tipo de dado TIMESTAMP

TIMESTAMP é a mistura de data e hora. Ele é útil quando:

  • Você quer registrar o momento exato, tipo quando o usuário fez login.
  • Precisa de um carimbo de tempo pra rastrear mudanças (log).

Exemplo de formato: YYYY-MM-DD HH:MI:SS (ano-mês-dia hora:minuto:segundo).

Exemplo:

id action - VARCHAR(100) login_time - TIMESTAMP
1 User Login 2023-10-15 14:30:00
2 File Uploaded 2023-10-15 15:10:00
3 User Logout 2023-10-15 16:45:00

Operações com data e hora

Agora que a gente já sabe quais tipos existem, bora ver como mexer com eles. O PostgreSQL tem várias funções prontas pra fazer operações com datas e horários.

Extraindo partes da data e hora

Se você tem um carimbo de tempo (TIMESTAMP) e quer pegar só o ano, mês, dia ou hora, usa a função EXTRACT.

Exemplo:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2025-06-15 14:30:00') AS ano;
-- Resultado: 2025

SELECT EXTRACT(MONTH FROM TIMESTAMP '2025-06-15 14:30:00') AS mes;
-- Resultado: 06

SELECT EXTRACT(DAY FROM TIMESTAMP '2025-06-15 14:30:00') AS dia;
-- Resultado: 15

Adicionando e subtraindo intervalos de tempo

Quer saber como vai estar daqui uma semana? Ou o que rolou ontem? Usa operações com intervalos.

Exemplo:

-- Adicionando 7 dias à data atual
SELECT CURRENT_DATE + INTERVAL '7 days' AS proxima_semana;

-- Subtraindo 1 mês
SELECT CURRENT_DATE - INTERVAL '1 month' AS mes_passado;

Comparando datas

Como saber se um evento já rolou? Mais fácil que achar bug no código — só comparar os valores.

Exemplo:

SELECT event_date
FROM events
WHERE event_date < CURRENT_DATE;
-- Seleciona todos os eventos que já passaram

Mais sobre funções pra trabalhar com data e hora você vai ver nas próximas aulas. Por enquanto, só lembra que esses tipos existem — isso já tá ótimo.

Problemas de fuso horário e padrão de tempo

Nessa aula a gente ainda não vai entrar nos detalhes de fuso horário, mas é bom saber que o PostgreSQL tem o tipo TIMESTAMPTZ (timestamp com fuso horário). Por exemplo, 2023-10-15 14:30:00+02 mostra que esse horário é do fuso UTC+2.

A gente vai falar disso no curso, mas só mais pra frente :P

Exemplo

Agora bora testar na prática o que aprendemos. Vamos criar uma tabela pra guardar o horário das aulas dos estudantes.

id subject_name class_date - DATE start_time - TIME end_time - TIME created_at - TIMESTAMP
1 Mathematics 2023-10-16 09:00:00 10:30:00 2023-10-12 14:00:00
2 Physics 2023-10-16 11:00:00 12:30:00 2023-10-12 14:00:00
3 Chemistry 2023-10-17 09:00:00 10:30:00 2023-10-12 14:01:00
4 Literature 2023-10-17 11:00:00 12:30:00 2023-10-12 14:01:00
5 Computer Science 2023-10-18 10:00:00 11:30:00 2023-10-12 14:02:00

Daqui a algumas aulas você vai criar tabelas assim no banco usando SQL. Por enquanto, só admira mesmo :)

Erros comuns

Formato de data e hora: na hora de inserir dados, segue o formato certo: YYYY-MM-DD pra datas e HH:MI:SS pra hora. O PostgreSQL pode não entender se você tentar colocar a data como "15/10/2023".

Tipo de dado errado: tentar salvar texto num campo DATE vai dar erro.

Erros de intervalo de tempo: se você adicionar, por exemplo, 30 dias em fevereiro, o PostgreSQL vai calcular certinho, mas a data pode cair em março.

Agora você já conhece os tipos de dados pra trabalhar com data e hora no PostgreSQL. Em projetos reais, isso ajuda a organizar agendas, logar eventos ou rastrear coisas importantes no sistema!

1
Pesquisa/teste
Tipos de dados numéricos, nível 15, lição 4
Indisponível
Tipos de dados numéricos
Tipos de dados numéricos
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION