Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Определяет дату, сочетающуюся с временем дня. Время основано на 24-часовом дне, с секундами всегда ноль (:00) и без дробных секунд.
Note
Используйте время, даты, datetime2и типы данных datetimeoffset для новой работы. Эти типы соответствуют стандарту SQL, так как они более переносимы. Типы time, datetime2 и datetimeoffset обеспечивают большую точность секунд. datetimeoffset обеспечивает поддержку часовых поясов для приложений, развертываемых по всему миру.
smalldatetime описание
| Property | Value |
|---|---|
| Syntax | smalldatetime |
| Usage | DECLARE @MySmallDateTime SMALLDATETIME;CREATE TABLE Table1 (Column1 SMALLDATETIME); |
|
форматы строковых литералов по умолчанию (используется для клиента нижнего уровня) |
Неприменимо |
| Диапазон даты |
1900-01-01
2079-06-06
1 января 1900 года — 6 июня 2079 года |
| Диапазон времени |
00:00:00
23:59:59
2024-05-09 23:59:59 округляется до 2024-05-10 00:00:00 |
| Диапазоны элементов |
yyyy четыре цифры, начиная с 1900 по 2079 год, что представляет год.MM — это две цифры, начиная от 01 до 12, которая представляет месяц в указанном году.dd — это две цифры, начиная от 01 до 31 в зависимости от месяца, который представляет день указанного месяца.HH — это две цифры, начиная от 00 до 23, что представляет час.mm — это две цифры, начиная от 00 до 59, что представляет минуту.ss — это две цифры, начиная от 00 до 59, которая представляет второй. Значения 29,998 с или меньше округляются до ближайшей минуты. Значения 29,999 с или больше округляются до ближайшей минуты. |
| Длина символа | Максимально 19 позиций |
| Размер хранилища | 4 байта, исправлено |
| Accuracy | Минутку |
| Значение по умолчанию | 1900-01-01 00:00:00 |
| Calendar | Gregorian (Не включает полный диапазон лет.) |
| определяемая пользователем доля секундная точность | No |
| смещение часового пояса с учетом и сохранением | No |
| с учетом | No |
Соответствие ANSI и ISO 8601
smalldatetime не удовлетворяет стандартам ANSI и ISO 8601.
Преобразование данных даты и времени
При преобразовании в типы данных даты и времени SQL Server отклоняет все значения, которые не могут распознаваться как даты или время. Сведения об использовании функций CAST и CONVERT с данными даты и времени см. в CAST и CONVERT.
Преобразование smalldatetime в другие типы даты и времени
В этом разделе описывается, что происходит при преобразовании типа данных smalldatetime в другие типы даты и времени.
Для преобразования в тип date копируются год, месяц и день. В следующем коде показаны результаты преобразования значения smalldatetime в значение даты.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Вот результирующий набор.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
Когда преобразование выполняется в времени (n), часы, минуты и секунды копируются. Для дробных секунд задано значение 0. В следующем коде показаны результаты преобразования значения smalldatetime в значение времени (4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Вот результирующий набор.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
При преобразовании в тип datetime значение smalldatetime копируется в значение datetime. Для дробных секунд задано значение 0. В следующем коде показаны результаты преобразования значения smalldatetime в значение datetime.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Вот результирующий набор.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
Для преобразования в 0, а для смещения часового пояса задано значение +00:0. В следующем коде показаны результаты преобразования значения smalldatetime в значение datetimeoffset(4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Вот результирующий набор.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
При преобразовании в тип datetime2(n) значение smalldatetime копируется в значение datetime2(n). Для дробных секунд задано значение 0. В следующем коде показаны результаты преобразования значения smalldatetime в значение datetime2(4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Вот результирующий набор.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Examples
A. Приведение строковых литерала с секундами к smalldatetime
В следующем примере сравнивается преобразование секунд в строковых литералах в 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. Сравнение типов данных даты и времени
В приведенном ниже примере сравниваются результаты приведения строкового типа к каждому из типов данных date и 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';
| Тип данных | 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 |