1
resposta

Como usar o getdate pra pegar o primeiro dia do ano?

Olá! Eu precisava fazer uma consulta onde eu filtro as linhas pela data de entrada entre 01 de jan do ano atual até a data atual. E queria fazer com que isso se mantivesse quando virasse o ano pegando somente por exemplo os registros a partir de 01/01/24.

1 resposta

Oi, Eduardo! Tudo bem?

Para realizar essa consulta, você pode usar juntamente à função GETDATE() as funções YEAR() (que obtém o ano de uma data) e DATEFROMPARTS() (a qual permite construir uma data usando partes específicas, como o ano, mês e dia). Dessa forma, você pode filtrar as linhas da tabela pela data de entrada entre 1º de janeiro do ano atual e a data atual.

Um exemplo de código é este:

SELECT *
FROM sua_tabela
WHERE data_entrada >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1)
  AND data_entrada <= GETDATE()

Observe que, no SELECT, criamos um filtro composto com base no campo (com dados em formato de data) da sua tabela:

  • Na primeira parte, verificamos se data_entrada é maior ou igual ao dia 1º de janeiro do ano atual — isso é possível porque DATEFROMPARTS cria de forma personalizada uma nova data, levando em consideração o ano vigente (coletado através do GETDATE() e do YEAR()) e os outros dois parâmetros, que representam o mês e o dia;
  • Na segunda parte, verificamos se data_entrada é menor ou igual à data em que a consulta foi executada.

Se fôssemos tomar como exemplo o dia de hoje (29/06/2023), a consulta acima retornaria um conjunto de registros que iniciam no dia 01/01/2023 e vão até 29/06/2023!

Edu, espero que isso te ajude! Como é um assunto externo aos cursos da Alura e que não tenho acesso ao cenário completo do seu projeto, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!

Um forte abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!