Tipo Date no SQL Server
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-01até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.
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
Aprenda a consertar o próprio computador como um profissional!
Especialize-se em manutenção preventiva e corretiva, diagnósticos de defeitos e upgrades com aulas passo a passo sem enrolação.
Torne-se também um técnico diferenciado e conquiste o emprego dos seus sonhos com este curso completo de Montagem e Manutenção de Desktops e Notebooks.
Sobre o Autor



0 Comentários