Função Date SQL

Data SQL

Quando lidamos com data, a tarefa mais difícil talvez seja garantir que o formato da data inserida coincida com o formato da coluna de data no banco de dados.

Se os dados contiverem apenas a parte de data, a execução da consulta não apresentará problemas. Mas, se envolver tempo, a situação se torna um pouco complexa.

Antes de discutir a complexidade das consultas de data, vamos olhar para as funções de processamento de data mais importantes:

Funções de data do MySQL

A tabela a seguir lista as funções de data mais importantes do MySQL:

Função Descrição
NOW() Retorna a data e hora atuais
CURDATE() Retorna a data atual
CURTIME() Retorna a hora atual
DATE() Extrai a parte de data de uma expressão de data/data/hora
EXTRACT() Retorna partes individuais de data/hora conforme a especificação
DATE_ADD() Adicionar intervalos de tempo especificados a uma data
DATE_SUB() Subtrair intervalos de tempo especificados de uma data
DATEDIFF() Retorna o número de dias entre duas datas
DATE_FORMAT() Exibir data/hora em diferentes formatos

Funções de data do SQL Server

A tabela a seguir lista as funções de data mais importantes do SQL Server:

Função Descrição
GETDATE() Retorna a data e hora atuais
DATEPART() Retorna partes individuais de data/hora
DATEADD() Adicionar ou subtrair intervalos de tempo especificados em uma data
DATEDIFF() Retorna o tempo entre duas datas
CONVERT() Exibir data/hora em diferentes formatos

Tipo de dados SQL Date

MySQL usa os seguintes tipos de dados para armazenar valores de data ou data/hora no banco de dados:

  • DATE - Formato YYYY-MM-DD
  • DATETIME - Formato: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - Formato: YYYY-MM-DD HH:MM:SS
  • YEAR - Formato YYYY ou YY

O SQL Server usa os seguintes tipos de dados para armazenar valores de data ou data/hora em bancos de dados:

  • DATE - Formato YYYY-MM-DD
  • DATETIME - Formato: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - Formato: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - Formato: Número único

Manutenção de datas do SQL

Se não envolver a parte de tempo, podemos comparar duas datas facilmente!

Suponha que tenhamos a seguinte tabela "Orders":

OrderId ProductName OrderDate
1 computer 2008-12-26
2 printer 2008-12-26
3 electrograph 2008-11-12
4 telephone 2008-10-19

Agora, queremos escolher os registros da tabela acima cuja OrderDate seja "2008-12-26".

Usamos a seguinte declaração SELECT:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

Conjunto de resultados:

OrderId ProductName OrderDate
1 computer 2008-12-26
3 electrograph 2008-12-26

Agora suponha que a classe "Orders" seja assim (por favor, note a parte de tempo da coluna "OrderDate"):

OrderId ProductName OrderDate
1 computer 2008-12-26 16:23:55
2 printer 2008-12-26 10:45:26
3 electrograph 2008-11-12 14:12:08
4 telephone 2008-10-19 12:56:10

Se usarmos a seguinte declaração SELECT:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

Então não conseguimos obter resultados. Isso é porque a consulta não contém a parte de tempo da data.

Dica:Se você deseja que a consulta seja simples e mais fácil de manter, não use a parte de tempo na data!