다음을 통해 공유


smalldatetime(Transact-SQL)

날짜와 시간을 정의합니다. 시간은 하루 24시간을 기준으로 하며 초는 항상 소수 자릿수 없이 0(:00)으로 표시됩니다.

참고

새 작업에는 time, date, datetime2 및 datetimeoffset 데이터 형식을 사용하십시오.이러한 데이터 형식은 SQL 표준에 맞는 형식으로,이식성이 높습니다.time, datetime2 및 datetimeoffset을 사용하면 초의 정밀도가 높아지며,전 세계에 배포되는 응용 프로그램의 경우 datetimeoffset을 사용하면 표준 시간대가 지원됩니다.

적용 대상: SQL Server(SQL Server 2008 - 현재 버전), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

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)

1.초를 포함한 문자열 리터럴을 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

2.날짜 및 시간 데이터 형식 비교

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

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

참고 항목

참조

CAST 및 CONVERT(Transact-SQL)