Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (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 hora, data, datetime2e datetimeoffset tipos de dados para novos trabalhos. Esses tipos se alinham com o padrão SQL, pois são mais portáteis. hora, datetime2 e datetimeoffset fornecer mais segundos de precisão. datetimeoffset fornece suporte de 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 através 2079-06-061º de janeiro de 1900 a 6 de junho de 2079 |
| Intervalo de tempo |
00:00:00 através 23:59:592024-05-09 23:59:59 rodadas 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 dois dígitos, variando de 00 a 23, que representa a hora.mm são dois dígitos, variando de 00 a 59, que representam o minuto.ss são dois dígitos, variando de 00 a 59, que representam o segundo. Os valores de 29,998 segundos ou menos são arredondados para baixo para o minuto mais próximo. Os valores de 29,999 segundos ou mais são arredondados para o minuto mais próximo. |
| Comprimento do caractere | 19 posições no máximo |
| Tamanho de armazenamento | 4 bytes, fixos |
| Accuracy | Um minuto |
| Valor predefinido | 1900-01-01 00:00:00 |
| Calendar | Gregorian (Não inclui o intervalo completo de anos.) |
| de precisão de segundo fracionário definido pelo usuário | No |
| Reconhecimento de compensação de fuso horário e preservação | No |
| Horário de verão ciente | No |
Conformidade com ANSI e ISO 8601
smalldatetime não é compatível com ANSI ou ISO 8601.
Converter dados de data e hora
Quando você converte em tipos de dados de data e hora, o 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 para 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
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
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 é para datetime, o valor de 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 smalldatetime em um valor de datetime.
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 para 0e o deslocamento de fuso horário é definido como +00:0. O código a seguir mostra os resultados da conversão de um
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 para datetime2(n), o valor de smalldatetime é copiado para o valor de datetime2(n). Os segundos fracionários são definidos como 0. O código a seguir mostra os resultados da conversão de um
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. Transmitir 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 com 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 com cada tipo de dados de data e hora.
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 |