다음을 통해 공유


smalldatetime(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPDW(Analytics Platform System)MICROSOFT Fabric

하루 중 시간과 결합된 날짜를 정의합니다. 시간은 24시간을 기준으로 하며 초는 항상 0(:00)이고 소수 자릿수 초는 없습니다.

참고 항목

새 작업에는 시간, 날짜, datetime2datetimeoffset 데이터 형식을 사용합니다. 이러한 형식은 더 이식 가능하기 때문에 SQL 표준에 맞습니다. time, datetime2datetimeoffset 은 더 많은 초 정밀도를 제공합니다. datetimeoffset 은 전역적으로 배포된 애플리케이션에 대한 표준 시간대 지원을 제공합니다.

smalldatetime 설명

속성
구문 smalldatetime
사용량 DECLARE @MySmallDateTime SMALLDATETIME;

CREATE TABLE Table1 (Column1 SMALLDATETIME);
기본 문자열 리터럴 형식
(하위 수준 클라이언트에 사용됨)
해당 없음
날짜 범위 2079-06-06 통해 1900-01-01

1900년 1월 1일부터 2079년 6월 6일까지
시간 범위 23:59:59 통해 00:00:00

2024-05-09 23:59:59 2024-05-10 00:00:00 반올림
요소 범위 yyyy 1900년부터 2079년까지 4자리 숫자로, 1년을 나타냅니다.

MM 지정된 연도의 월을 나타내는 01에서 12 사이의 두 자리 숫자입니다.

dd 지정된 월의 일을 나타내는 월에 따라 01에서 31 사이의 두 자리 숫자입니다.

HH 시간을 나타내는 00에서 23 사이의 두 자리 숫자입니다.

mm 분을 나타내는 00에서 59 사이의 두 자리 숫자입니다.

ss 두 번째 숫자를 나타내는 00에서 59 사이의 두 자리 숫자입니다. 29.998초 이하의 값은 가장 가까운 분으로 반올림됩니다. 29.999초 이상의 값은 가장 가까운 분으로 반올림됩니다.
문자 길이 최대 19개 위치
스토리지 크기 4바이트, 고정
정확도 1분
기본값 1900-01-01 00:00:00
일정 양력

(전체 연도 범위는 포함하지 않습니다.)
사용자 정의 소수 자릿수 초 정밀도 아니요
표준 시간대 오프셋 인식 및 보존 아니요
일광 절약 인식 아니요

ANSI 및 ISO 8601 규정 준수

smalldatetime은 ANSI 또는 ISO 8601 규격이 아닙니다.

날짜 및 시간 데이터 변환

날짜 및 시간 데이터 형식으로 변환할 때 SQL Server는 날짜 또는 시간으로 인식할 수 없는 모든 값을 거부합니다. 날짜 및 시간 데이터와 함께 CASTCONVERT 함수를 사용하는 방법에 대한 자세한 내용은 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 값을 time(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

datetimeoffset(n)변환의 경우 smalldatetime 값이 datetimeoffset(n) 값으로 복사됩니다. 소수 자릿수 초는 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

예제

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);
입력 출력
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. 날짜 및 시간 데이터 형식 비교

다음 예제에서는 각 날짜 및 시간 데이터 형식에 문자열을 캐스팅한 결과를 비교합니다.

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';
데이터 형식 출력
time 12:35:29.1234567
date 2024-05-08
smalldatetime 2024-05-08 12:35:00
날짜/시간 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