Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Define uma data que é combinada com uma hora do dia. O tempo é baseado em um dia de 24 horas, com segundos sempre zero (:00) e sem segundos fracionários.
Note
Use o de hora, de data, datetime2 e tipos de dados datetimeoffset para um novo trabalho. Esses tipos se alinham com o padrão SQL, pois são mais portáteis. time, datetime2 e datetimeoffset fornecem mais precisão de segundos. datetimeoffset é compatível com fuso horário para aplicativos implantados globalmente.
Descrição do SmallDateTime
| Property | Value |
|---|---|
| Syntax | smalldatetime |
| Usage | DECLARE @MySmallDateTime SMALLDATETIME;CREATE TABLE Table1 (Column1 SMALLDATETIME); |
|
formatos literais de cadeia de caracteres padrão (usado para cliente de nível inferior) |
Não aplicável |
| Intervalo de datas |
1900-01-01
2079-06-06
1º de janeiro de 1900 a 6 de junho de 2079 |
| Intervalo de tempo |
00:00:00
23:59:59
2024-05-09 23:59:59 arredonda para 2024-05-10 00:00:00 |
| Intervalos de elementos |
yyyy são quatro dígitos, variando de 1900 a 2079, o que representa um ano.MM são dois dígitos, variando de 01 a 12, o que representa um mês no ano especificado.dd são dois dígitos, variando de 01 a 31, dependendo do mês, o que representa um dia do mês especificado.HH são dois dígitos, variando de 00 a 23, o que representa a hora.mm são dois dígitos, variando de 00 a 59, que representa o minuto.ss são dois dígitos, variando de 00 a 59, que representa o segundo. Valores equivalentes a 29,998 segundos ou menos são arredondados para baixo até o minuto mais próximo. Valores equivalentes a 29,999 segundos ou mais são arredondados para cima até o minuto mais próximo. |
| Comprimento do caractere | máximo de 19 posições |
| Tamanho do armazenamento | 4 bytes, corrigidos |
| Accuracy | Um minuto |
| Valor padrão | 1900-01-01 00:00:00 |
| Calendar | Gregorian (Não inclui o intervalo completo de anos.) |
| de precisão fracionária definida pelo usuário | No |
| de reconhecimento e preservação de fuso horário | No |
| de reconhecimento do horário de verão | No |
Conformidade com ANSI e ISO 8601
smalldatetime não está em conformidade com o ANSI nem com o ISO 8601.
Converter dados de data e hora
Ao fazer a conversão em tipos de dados de data e hora, SQL Server rejeita todos os valores que não pode reconhecer como datas ou horas. Para obter informações sobre como usar as funções CAST e CONVERT com dados de data e hora, consulte CAST e CONVERT.
Converter smalldatetime em outros tipos de data e hora
Esta seção descreve o que ocorre quando um tipo de dados smalldatetime é convertido em outros tipos de dados de data e hora.
Para uma conversão em data, o ano, o mês e o dia são copiados. O código a seguir mostra os resultados da conversão de um valor de de
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Aqui está o conjunto de resultados.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
Quando a conversão é para tempo(n), as horas, minutos e segundos são copiados. Os segundos fracionários são definidos como 0. O código a seguir mostra os resultados da conversão de um valor de de
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Aqui está o conjunto de resultados.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
Quando a conversão é em datetime, o valor smalldatetime é copiado para o valor datetime. Os segundos fracionários são definidos como 0. O código a seguir mostra os resultados da conversão de um valor de de
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Aqui está o conjunto de resultados.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
Para uma conversão em 0e o deslocamento de fuso horário é definido como +00:0. O código a seguir mostra os resultados da conversão de um valor de de
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Aqui está o conjunto de resultados.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
Para a conversão em datetime2(n) , o valor smalldatetime é copiado para o valor datetime2(n) . Os segundos fracionários são definidos como 0. O código a seguir mostra os resultados da conversão de um valor de de
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Aqui está o conjunto de resultados.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Examples
A. Conversão de literais de cadeia de caracteres com segundos para smalldatetime
O exemplo a seguir compara a conversão de segundos em literais de cadeia de caracteres para smalldatetime.
SELECT CAST ('2024-05-08 12:35:29' AS SMALLDATETIME),
CAST ('2024-05-08 12:35:30' AS SMALLDATETIME),
CAST ('2024-05-08 12:59:59.998' AS SMALLDATETIME);
| Input | Output |
|---|---|
2024-05-08 12:35:29 |
2024-05-08 12:35:00 |
2024-05-08 12:35:30 |
2024-05-08 12:36:00 |
2024-05-08 12:59:59.998 |
2024-05-08 13:00:00 |
B. Comparar tipos de dados de data e hora
O exemplo a seguir compara os resultados da conversão de uma cadeia de caracteres em cada tipo de dados date e time.
SELECT CAST ('2024-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2024-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2024-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
| Tipo de dados | Output |
|---|---|
| time | 12:35:29.1234567 |
| date | 2024-05-08 |
| smalldatetime | 2024-05-08 12:35:00 |
| datetime | 2024-05-08 12:35:29.123 |
| datetime2 | 2024-05-08 12:35:29.1234567 |
| datetimeoffset | 2024-05-08 12:35:29.1234567 +12:15 |