Olá galera,

Nesta postagem vou mostrar as principais funções de data do SQL Server.

No SQL Server há algumas formas de sabermos a data atual do sistema via comando SQL

  • GETDATE(): Data e hora atuais do sistema. Função da engine do SQL Server
  • CURRENT_TIMESTAMP – Data e hora atuais do sistema. Padrão SQL ANSI
  • Outras funções para retornar a data do sistema – SYSDATETIME(), SYSDATETIMEOFFSET(), SYSUTCDATETIME(), GETUTCDATE()

Ex.:
SELECT GETDATE() as TEST_GETDATE
SELECT CURRENT_TIMESTAMP as TEST_CURRENT
SELECT SYSDATETIME () as TEST_SYSUTCDATETIME

Função DATEPART(): Retorna um fragmento da data de acordo com o DATEPART escolhido. Está função retorna um valor inteiro, que representa o valor que desejamos obter.

  • Recebe 2 argumentos:
    • Primeiro parâmetro: fragmento da data que desejamos
    • Segundo parâmetro: data propriamente dita.
  • Sintaxe
    • DATEPART (parametro1, parametro2)

TABELA ABREVIAÇÕES DE FRAGMENTO DE DATA OU DATEPARTS

Ex.:
SELECT
DATEPART(YEAR, GETDATE()) AS ‘ANO’,
DATEPART(QUARTER, GETDATE() ) AS ‘TRIMESTRE DO ANO’,
DATEPART(MONTH, GETDATE()) AS ‘MÊS’,
DATEPART(DAYOFYEAR, GETDATE() ) AS ‘DIA DO ANO (DE 1 A 365 )’,
DATEPART(DAY, GETDATE() ) AS ‘DIA’,
DATEPART(WEEK, GETDATE() ) AS ‘SEMANA’,
DATEPART(WEEKDAY, GETDATE() ) AS ‘DIA DA SEMANA’,
DATEPART(HOUR, GETDATE() ) AS ‘HORA’,
DATEPART(MINUTE, GETDATE() ) AS ‘MINUTO’,
DATEPART(SECOND, GETDATE() ) AS ‘SEGUNDO’,
DATEPART(MILLISECOND, GETDATE() ) AS ‘MILISEGUNDO’,
DATEPART(MICROSECOND, GETDATE() ) AS ‘MICROSEGUNDO’,
DATEPART(NANOSECOND, GETDATE() ) AS ‘NANOSEGUNDO’

Função DATEDIFF(): Retorna a diferença em um número inteiro de um intervalo de duas datas usando como argumento o fragmento de comparação.

  • Recebe 3 parâmetros:
    • Primeiro parâmetro: fragmento da data (datepart) que desejamos
    • Segundo parâmetro: data inicial que será feita a diferença
    • Terceiro parâmetro: data final que será feita a diferença
  • Sintaxe:
    • DATEDIFF(fragment,data1,data2)

Ex.:
SELECT
DATEDIFF(YEAR, ‘2018-01-01’, GETDATE()) AS ‘ANO’,
DATEDIFF(MONTH, ‘2018-01-01’ , GETDATE()) AS ‘MÊS’,
DATEDIFF(DAY, ‘2018-01-01’ , GETDATE()) AS ‘DIAS’,
DATEDIFF(WEEK, ‘2018-01-01’ , GETDATE()) AS ‘SEMANA’,
DATEDIFF(HOUR, ‘2018-01-01’ , GETDATE()) AS ‘HORA’,
DATEDIFF(MINUTE, ‘2018-01-01’ , GETDATE()) AS ‘MINUTO’

Função DATEADD() – Tem como propósito incrementar ou subtrair valores absolutos de uma determinada data.

  • Recebe 3 parâmetros:
  • Primeiro parâmetro: fragmento da data (datepart) que desejamos
    • Segundo parâmetro: valor que será adicionado ou subtraído da parte da data ou fragmento
    • Terceiro parâmetro: data que será utilizada
  • Sintaxe:
    • DATEADD(parametro1, parametro2, parametro3)

Ex.:
SELECT
DATEADD(YEAR, 5, getdate() ) AS ‘ANO ADICIONADO’,
DATEADD(YEAR, -5, getdate() ) AS ‘ANO SUBTRAIDO’,
DATEADD(MONTH, 5, getdate() ) AS ‘MÊS’,
DATEADD(DAY, 5, getdate() ) AS ‘DIA’,
DATEADD(WEEK, 5, getdate() ) AS ‘SEMANA’,
DATEADD(HOUR, 5, getdate() ) AS ‘HORA’

Função DATENAME() – Tem como propósito retornar o nome da uma determinada parte da data passada .

  • Recebe 2 parâmetros:
    • Primeiro parâmetro: fragmento da data (datepart) que desejamos
    • Segundo parâmetro: data a ser utilizada.
  • Sintaxe
    • DATENAME(fragmento, data)

Ex.:
SELECT
DATENAME(YEAR,GETDATE()) AS ‘ANO’,
DATENAME(MONTH,GETDATE()) AS ‘MES’,
DATENAME(WEEKDAY,GETDATE()) AS ‘DIA DA SEMANA’

Funções YEAR(), MONTH(), DAY(): São extensões da função DATEPART, porém com os argumentos de DATEPART suprimidos (implícitos).

Em vez de usar a função DATEPART (MONTH, GETDATE()) para retornar o mês, apenas utilizamos a função MONTH (GETDATE()) que produzirá o mesmo resultado.

A função EOMONTH retorna o ultimo dia do mês da data passada. A partir da versão 2012 do SQL Server.

  • A função DAY retorna o dia da data passada
  • A função MONTH retorna o mês da data passada
  • A função YEAR retorna o ano da data passada
  • A função EOMONTH retorna o ultimo dia da data passada.

  • As funções DAY, MONTH e YEAR tem somente um parâmetro que é a data informada.
  • Para a função EOMOTH é possível passar um segundo parâmetro opcional para incrementar ou decrementar a data.
  • Sintaxe
    • DAY, MONTH, YEAR (data)
    • EOMONTH (data, parâmetro opcional)

Ex.:
SELECT
GETDATE() DATA_SISTEMA,
YEAR(GETDATE() ) AS ‘ANO’,
MONTH(GETDATE() ) AS ‘MÊS’,
DAY(GETDATE() ) AS ‘DIA’,
EOMONTH(GETDATE()) AS ‘ULTIMO DIA DO MES’

ISDATE(): função que verifica se uma determinada data é valida ou não.

  • Recebe somente 1 parâmetro que é a data a ser validada.
  • Essa função retorna um tipo inteiro, aonde:
    • 0: data inválida
    • 1: data válida
  • Sintaxe:
    • ISDATE (data)

Ex.:
SELECT ISDATE(GETDATE()) as TEST_DATE_VALID
SELECT ISDATE(‘2018-13-01’) as TEST_DATE_INVALID

Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.

Fiquem a vontade para mandar comentários, sugestões, criticas e dúvidas e etc. Esse tipo de feedback, faz com que eu estude mais, aumente o conhecimento e melhore as postagem para vocês.

Até a próxima o/

Redes Sociais: