O tipo de dado DATE
no SQL Server é utilizado para armazenar informações de datas sem a necessidade de registrar o horário. Ele é ideal para aplicações que apenas requerem informações de datas (como aniversários, datas de contratação, etc.), sem precisar do componente de tempo. Neste post, vamos explorar o tipo Date no SQL Server.
O que é o tipo de dado DATE?
No SQL Server, o tipo de dado DATE
armazena apenas datas (dia, mês e ano), ignorando o componente de tempo. Esse tipo de dado ocupa 3 bytes de armazenamento, o que o torna mais eficiente do que tipos que incluem informações de tempo, como DATETIME
ou DATETIME2
.
Características do Tipo DATE
:
- Formato padrão:
YYYY-MM-DD
(ano-mês-dia). - Intervalo de valores: De
0001-01-01
até9999-12-31
. - Tamanho de armazenamento: 3 bytes.
Sintaxe do tipo DATE
Ao criar uma tabela ou inserir valores no SQL Server, você pode definir uma coluna como tipo DATE
da seguinte forma:
CREATE TABLE Funcionarios (
FuncionarioID INT PRIMARY KEY,
Nome VARCHAR(50),
DataNascimento DATE
);
Neste exemplo, a coluna DataNascimento
está definida como tipo DATE
, permitindo que apenas informações de datas sejam armazenadas.
Quando usar o tipo DATE
O tipo DATE
é ideal em situações onde o horário não é necessário, e você deseja otimizar o uso de espaço ou evitar a inclusão de componentes de tempo. Exemplos incluem:
- Datas de aniversário: Um campo
DATE
é perfeito para armazenar a data de nascimento de usuários ou clientes sem a necessidade de incluir a hora; - Datas de eventos: Para registrar o dia de um evento (como reuniões ou eventos históricos), sem a precisão de horas;
- Datas de contratos ou vencimentos: Ideal para registrar datas de contratos, vencimentos de contas ou datas de entrega, onde o horário exato não é relevante.
Como Manipular o Tipo DATE
Aqui estão algumas operações comuns que podem ser realizadas com colunas de tipo DATE
.
1. Inserir dados no tipo DATE
Ao inserir valores em uma coluna DATE
, o SQL Server aceita datas no formato padrão YYYY-MM-DD
:
INSERT INTO Funcionarios (FuncionarioID, Nome, DataNascimento)
VALUES (1, 'João Silva', '1985-04-23');
Nesse exemplo, a data de nascimento “23 de abril de 1985” será armazenada na coluna DataNascimento
.
2. Selecionar dados com DATE
Você pode usar uma consulta simples para selecionar registros com base em uma data específica:
SELECT Nome, DataNascimento
FROM Funcionarios
WHERE DataNascimento = '1985-04-23';
Isso retornará todos os funcionários que nasceram em 23 de abril de 1985.
3. Filtrar dados usando intervalos de data
Com o tipo DATE
, você pode facilmente filtrar resultados baseados em intervalos de datas:
SELECT Nome, DataNascimento
FROM Funcionarios
WHERE DataNascimento BETWEEN '1980-01-01' AND '1990-12-31';
Esse exemplo retorna todos os funcionários nascidos entre 1º de janeiro de 1980 e 31 de dezembro de 1990.
4. Obter a data atual
Para inserir ou consultar a data atual, o SQL Server oferece a função GETDATE()
, que retorna a data e hora atuais. No entanto, como o tipo DATE
ignora a hora, você pode usar a função CAST
para converter GETDATE()
em uma data sem tempo:
SELECT CAST(GETDATE() AS DATE) AS DataAtual;
Ou, ao inserir um valor de data atual em uma coluna DATE
:
INSERT INTO Funcionarios (FuncionarioID, Nome, DataNascimento)
VALUES (2, 'Maria Souza', CAST(GETDATE() AS DATE));
5. Funções úteis para o tipo DATE
YEAR()
: Retorna o ano de uma data.
SELECT YEAR(DataNascimento)
FROM Funcionarios;
MONTH()
: Retorna o mês de uma data.
SELECT MONTH(DataNascimento)
FROM Funcionarios;
DAY()
: Retorna o dia do mês de uma data.
SELECT DAY(DataNascimento)
FROM Funcionarios;
O SQL Server possui vários tipos diferentes para tratar data e hora, bem como níveis diferentes de intervalo e precisão. Veja:
Tipo | Formato | Intervalo | Precisão | Tamanho (bytes) |
Time | hh:mm:ss[.nnnnnnn] | 00:00:00.0000000 até 23:59:59.9999999 | 100 nano segundos | 3 até 5 |
Date | YYYY-MM-DD | 0001–01–01 até 9999–12–31< | 1 dia | 3 |
Smalldatetime | YYYY-MM-DD hh:mm:ss | 1900–01–01 até 2079–06–06 | 1 minuto | 4 |
DateTime | >YYYY-MM-DD hh:mm:ss[.nnn] | 1753–01–01 até 9999–12–31 | 0,00333 segundo | 8 |
Datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 0001–01–01 00:00:00.0000000 até 9999–12–31 23:59:59.9999999 | 100 nano segundos | 6 até 8 |
Datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn][+|-]hh:mm | 0001–01–01 00:00:00.0000000 até 9999–12–31 23:59:59.9999999 (in UTC) | 100 nano segundos | 8 até 10 |
DECLARE
@data DATETIME = '20041982' //Declara variável @data
BEGIN
//Converte variável @data para o formato VARCHAR para ser concatenado com 'Data: ' e mostrada no formato brasileiro (parâmetro 105)
PRINT 'Data: ' + CONVERT(VARCHAR, @data, 105)
END
GO
Existem outros parâmetros como os 121 e 120 para formatar datas em outros formatos.
Use DATE
quando você precisar apenas de informações de data, sem componentes de tempo;
Use DATETIME
ou DATETIME2
quando precisar armazenar tanto a data quanto a hora com precisão.
O tipo de dado DATE
no SQL Server é a escolha ideal para armazenar informações de data de maneira eficiente, sem o componente de tempo.
Ele economiza espaço em comparação com tipos mais complexos, como DATETIME
, e é perfeito para situações em que o horário não é relevante.
Ao compreender como inserir, manipular e consultar dados de tipo DATE
, você estará melhor preparado para otimizar suas consultas e manter a integridade dos dados relacionados a datas em suas aplicações.
Domine os principais comandos, Operadores, Manipulação de dados, Funções, Drop e Uploads, Query, SubQuerys, Views, Segurança e muito mais!
O acesso ao nosso curso é vitalício e com suporte exclusivo.
CLIQUE NA IMAGEM ABAIXO PARA MAIS DETALHES:
Dúvidas ou sugestões sobre o tipo Date no SQL Server? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários