smalldatetime(Transact-SQL)
적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)
날짜와 시간을 정의합니다. 시간은 하루 24시간을 기준으로 하며 초는 항상 소수 자릿수 없이 0(:00)으로 표시됩니다.
참고
새 작업에 대해 time, date, datetime2 및 datetimeoffset 데이터 형식을 사용합니다. 이러한 데이터 형식은 SQL 표준에 맞는 형식으로, 이식성이 높습니다. time, datetime2 및 datetimeoffset은 초의 정밀도를 높여줍니다. datetimeoffset은 전 세계에 배포되는 애플리케이션에 대해 표준 시간대를 지원합니다.
smalldatetime 설명
속성 | 값 |
---|---|
구문 | smalldatetime |
사용 | DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1(Column1 smalldatetime) |
기본 문자열 리터럴 형식 (하위 클라이언트에 대해 사용됨) |
해당 없음 |
날짜 범위 | 1900-01-01부터 2079-06-06까지 1900년 1월 1일부터 2079년 6월 6일까지 |
시간 범위 | 00:00:00부터 23:59:59까지 2007-05-09 23:59:59 다음 시간은 다음과 같음 2007-05-10 00:00:00 |
요소 범위 | YYYY는 1900에서 2079사이에 속하는 4자리 숫자로, 연도를 나타냅니다. 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 규격이 아닙니다.
date 및 time 데이터 변환
SQL Server에서 날짜 및 시간 데이터 형식을 변환할 때 날짜나 시간으로 인식되지 않는 값은 모두 무시됩니다. 날짜 및 시간 데이터에 CAST 및 CONVERT 함수를 사용하는 방법은 CAST 및 CONVERT(Transact-SQL)를 참조하세요.
smalldatetime을 다른 날짜 및 시간 형식으로 변환
이 섹션에서는 smalldatetime 데이터 형식이 다른 날짜 및 시간 데이터 형식으로 변환될 때 어떤 일이 발생하는지를 설명합니다.
date로 변환하는 경우 년, 월, 일이 복사됩니다. 다음 코드에서는 smalldatetime
값을 date
값으로 변환한 결과를 보여 줍니다.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @date date = @smalldatetime
SELECT @smalldatetime AS '@smalldatetime', @date AS 'date';
--Result
--@smalldatetime date
------------------------- ----------
--1955-12-13 12:43:00 1955-12-13
--
--(1 row(s) affected)
time(n) 으로 변환되는 경우 시간, 분 및 초가 복사됩니다. 소수 자릿수 초는 0으로 설정됩니다. 다음 코드에서는 smalldatetime
값을 time(4)
값으로 변환한 결과를 보여 줍니다.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @time time(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @time AS 'time';
--Result
--@smalldatetime time
------------------------- -------------
--1955-12-13 12:43:00 12:43:00.0000
--
--(1 row(s) affected)
datetime으로 변환되는 경우 smalldatetime 값이 datetime 값으로 복사됩니다. 소수 자릿수 초는 0으로 설정됩니다. 다음 코드에서는 smalldatetime
값을 datetime
값으로 변환한 결과를 보여 줍니다.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetime datetime = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime';
--Result
--@smalldatetime datetime
------------------------- -----------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.000
--
--(1 row(s) affected)
datetimeoffset(n) 으로 변환하는 경우 smalldatetime 값이 datetimeoffset(n) 값으로 복사됩니다. 소수 자릿수 초는 0으로 설정되고 표준 시간대 오프셋은 +00:0으로 설정됩니다. 다음 코드에서는 smalldatetime
값을 datetimeoffset(4)
값으로 변환한 결과를 보여 줍니다.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)';
--Result
--@smalldatetime datetimeoffset(4)
------------------------- ------------------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
--
--(1 row(s) affected)
datetime2(n) 로 변환되는 경우 smalldatetime 값이 datetime2(n) 값으로 복사됩니다. 소수 자릿수 초는 0으로 설정됩니다. 다음 코드에서는 smalldatetime
값을 datetime2(4)
값으로 변환한 결과를 보여 줍니다.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';
DECLARE @datetime2 datetime2(4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)';
--Result
--@smalldatetime datetime2(4)
------------------------- ------------------------
--1955-12-13 12:43:00 1955-12-13 12:43:00.0000
--
--(1 row(s) affected)
예
A. 초를 포함한 문자열 리터럴을 smalldatetime으로 캐스팅
다음 예에서는 문자열 리터럴의 초를 smalldatetime
으로 변환한 결과를 비교합니다.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
입력 | 출력 |
---|---|
2007-05-08 12:35:29 | 2007-05-08 12:35:00 |
2007-05-08 12:35:30 | 2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 | 2007-05-08 13:00:00 |
B. 날짜 및 시간 데이터 형식 비교
다음 예에서는 문자열을 각 날짜 및 시간 데이터 형식으로 캐스팅하는 결과를 비교합니다.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
데이터 형식 | 출력 |
---|---|
time | 12:35:29. 1234567 |
date | 2007-05-08 |
smalldatetime | 2007-05-08 12:35:00 |
datetime | 2007-05-08 12:35:29.123 |
datetime2 | 2007-05-08 12:35:29. 1234567 |
datetimeoffset | 2007-05-08 12:35:29.1234567 +12:15 |
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기