CAST 및 CONVERT
식을 다른 데이터 형식으로 명시적으로 변환합니다. CAST 및 CONVERT는 비슷한 기능을 제공합니다.
구문
CAST 사용
CAST ( expression AS data_type )
CONVERT 사용
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
인수
expression
유효한 Microsoft® SQL Server™ 식입니다. 자세한 내용은 식을 참조하십시오.
data_type
bigint, sql_variant 등 대상 시스템 제공 데이터 형식입니다. 사용자 정의 데이터 형식은 사용할 수 없습니다. 자세한 내용은 데이터 형식을 참조하십시오.
length
nchar, nvarchar, char, varchar, binary, varbinary 데이터 형식의 선택적 매개 변수입니다.
style
datetime, smalldatetime 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환할 때 사용되는 날짜 형식이나 float, real, money, smallmoney 데이터를 문자 데이터(nchar, nvarchar, char, varchar, nchar, nvarchar 데이터 형식)로 변환할 때 사용되는 문자열 형식의 스타일입니다.
SQL Server는 쿠웨이트 알고리즘을 사용하여 아랍어 날짜 형식을 지원합니다.
다음 표에서 왼쪽 두 열은 datetime 또는 smalldatetime을 문자 데이터로 변환하기 위한 style 값을 나타냅니다. 세기가 포함된 네 자리 연도(yyyy)를 구하려면 style 값에 100을 더합니다.
세기 포함 안함 (yy) |
세기 포함 (yyyy) |
표준 |
입력/출력** |
---|---|---|---|
- | 0 또는 100 (*) | 기본값 | mon dd yyyy hh:miAM(또는 PM) |
1 | 101 | USA | mm/dd/yy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | 영국/프랑스 | dd/mm/yy |
4 | 104 | 독일 | dd.mm.yy |
5 | 105 | 이탈리아 | dd-mm-yy |
6 | 106 | - | dd mon yy |
7 | 107 | - | Mon dd, yy |
8 | 108 | - | hh:mm:ss |
- | 9 또는 109 (*) | 기본값 + 밀리초 | mon dd yyyy hh:mi:ss:mmmAM(또는 PM) |
10 | 110 | USA | mm-dd-yy |
11 | 111 | 일본 | yy/mm/dd |
12 | 112 | ISO | yymmdd |
- | 13 또는 113 (*) | 유럽 기본값 + 밀리초 | dd mon yyyy hh:mm:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 또는 120 (*) | ODBC 표준 | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 또는 121 (*) | ODBC 표준(밀리초) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126(***) | ISO8601 | yyyy-mm-dd Thh:mm:ss:mmm(공간 없음) |
- | 130* | 쿠웨이트 | dd mon yyyy hh:mi:ss:mmmAM |
- | 131* | 쿠웨이트 | dd/mm/yy hh:mi:ss:mmmAM |
* 기본값(style 0 또는 100, 9 또는 109, 13 또는 113, 20 또는 120, 21 또는 121)은 항상 세기(yyyy)를 반환합니다.
밑에 예제는 Convert함수와 날짜함수를 사용하여서 뽑아온것입니다.
1) 오늘 작성된 글중 Top 10개
SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where convert(varchar(40), m_insertdate, 110) = convert(varchar(40),getdate(), 110) and m_listnum <> 0 and binfo_type <> 'Fbd'
order by m_read desc
2) 오늘부터 일주일전까지 작성된 글중 Top 10개
SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where convert(varchar(40), m_insertdate, 110) >= convert(varchar(40), Dateadd(day,-7, getdate()), 110) and m_listnum <> 0 and binfo_type <> 'Fbd'
order by m_read desc
3) 오늘부터 한달전까지 작성된글중 랜덤하게 10개
SELECT TOP 10 m_no, m_table, a.cat_num, m_subject, m_insertdate, m_read, b.binfo_type
from m_board a inner join m_binfo b on a.m_table = b.binfo_table
where convert(varchar(40), m_insertdate, 110) >= convert(varchar(40), Dateadd(month,-1, getdate()), 110) and m_listnum <> 0 and binfo_type <> 'Fbd'
order by newid()
'IT-개발,DB' 카테고리의 다른 글
[VC++] MultibyteToWideChar (0) | 2010.09.28 |
---|---|
[MS SQL SERVER] 한번에 여러개의 레코드를 추가하는 방법 (0) | 2010.09.20 |
[MS-SQL Server 2005] 외래 키 관계 대화 상자 (0) | 2010.09.20 |
[ms-sql] sp_executesql 에서 nvarchar(max) 사용 (0) | 2010.09.20 |
[ASP.NET] Base64 인코드 디코드(C#) (0) | 2010.09.16 |
댓글