Datas SQL
A parte mais difícil quando se trabalha com datas é ter a certeza de que o formato da data que você está tentando inserir, corresponde ao formato da coluna de data no banco de dados.
MySQL Data Funções
A tabela a seguir lista os mais importantes funções de data incorporados no 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 da data de uma data ou expressão / hora |
EXTRACT() | Retorna um único parte de uma data / hora |
DATE_ADD() | Adiciona um intervalo de tempo especificado para uma data |
DATE_SUB() | Subtrai um intervalo de tempo especificado a partir de uma data |
DATEDIFF() | Retorna o número de dias entre duas datas |
DATE_FORMAT() | Exibe a data / data hora em diferentes formatos |
Servidor Data Funções SQL
A tabela a seguir lista os mais importantes funções de data incorporados no SQL Server:
Função | Descrição |
---|---|
GETDATE() | Retorna a data e hora atuais |
DATEPART() | Retorna um único parte de uma data / hora |
DATEADD() | Adiciona ou subtrai um intervalo de tempo especificado a partir de uma data |
DATEDIFF() | Retorna o tempo entre duas datas |
CONVERT() | Exibe a data / data hora em diferentes formatos |
Tipos de Dados SQL Data
MySQL vem com os seguintes tipos de dados para armazenar uma data ou um valor de data / hora no banco de dados:
- DATA - formato AAAA-MM-DD
- DATETIME - formato: AAAA-MM-DD HH: MI: SS
- TIMESTAMP - formato: AAAA-MM-DD HH: MI: SS
- ANO - formato AAAA ou YY
SQL Server vem com os seguintes tipos de dados para armazenar uma data ou um valor de data / hora no banco de dados:
- DATA - formato AAAA-MM-DD
- DATETIME - formato: AAAA-MM-DD HH: MI: SS
- SMALLDATETIME - formato: AAAA-MM-DD HH: MI: SS
- TIMESTAMP - formato: um número único
Note: Os tipos de data são escolhidos para uma coluna quando você cria uma nova tabela em seu banco de dados!
Para uma visão geral de todos os tipos de dados disponíveis, vá ao nosso completo referência Tipos de Dados .
SQL Trabalhando com datas
Você pode comparar duas datas com facilidade se não existe nenhum componente tempo envolvido!
Suponha que temos o seguinte "Orders" tabela:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Agora queremos selecionar os registros com um OrderDate de "2008-11-11" da tabela acima.
Nós usamos a seguinte instrução SELECT:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
O resultado-set será parecido com este:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Agora, suponha que o "Orders" da tabela se parece com isso (note o componente de tempo no "OrderDate" coluna):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | mascarpone Fabioli | 2008-10-29 14:56:59 |
Se usarmos a mesma instrução SELECT como acima:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
vamos obter nenhum resultado! Isso ocorre porque a consulta está olhando apenas para datas com nenhuma parte do tempo.
Tip: Se você quiser manter suas consultas simples e de fácil manutenção, não permitir que componentes de tempo em suas datas!