[DATABASE/SQLSERVER] 날짜 포맷 사용하기
■ 날짜 포맷을 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
SELECT CONVERT(VARCHAR(50), GETDATE(), 1); |
[날짜 포맷 번호] 0 : Sep 27 2011 8:53AM 1 :
■ 날짜 포맷을 사용하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
SELECT CONVERT(VARCHAR(50), GETDATE(), 1); |
[날짜 포맷 번호] 0 : Sep 27 2011 8:53AM 1 :
■ 디폴트 포트가 아닌 다른 포트로 접속하는 방법을 보여준다. SQL Server의 디폴트 포트 1433 외에 다른 포트(예 : 3000)로 접속해야 하는 경우,
■ E 메일 주소를 검증하는 방법을 보여준다. ▶ E 메일 주소 검증하기 예제 (SQL)
1 2 3 |
SELECT dbo.ValidateEMailAddress('icodebroker@naver.com'); |
▶ E 메일 주소 검증하기 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
CREATE FUNCTION [dbo].[ValidateEMailAddress] ( @EMailAddress VARCHAR(255) ) RETURNS BIT AS BEGIN RETURN ( SELECT CASE WHEN @EMailAddress IS NULL THEN 0 WHEN CHARINDEX(' ', @EMailAddress) <> 0 OR CHARINDEX('/', @EMailAddress) <> 0 OR CHARINDEX(':', @EMailAddress) <> 0 OR CHARINDEX(';', @EMailAddress) <> 0 THEN 0 WHEN LEN(@EMailAddress) - 1 <= CHARINDEX('.', @EMailAddress) THEN 0 WHEN @EMailAddress LIKE '%@%@%' OR @EMailAddress NOT LIKE '%@%.%' THEN 0 ELSE 1 END ); END GO |
■ 계층적 테이블을 조회하는 방법을 보여준다. ▶ 계층적 테이블 조회하기 예제 (SQL)
1 2 3 |
SELECT * FROM GetTreeTable(18); |
▶ 계층적 테이블 조회하기 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
CREATE FUNCTION [dbo].[GetTreeTable] ( @ParentID INT -- 부모 ID ) RETURNS @ResultTree TABLE ( ID INT ,Name NVARCHAR(50) ,ParentID INT ,TreeLevel INT ,TreePath VARCHAR(2000) ) AS BEGIN DECLARE @TreeLevel INT; SELECT @TreeLevel = 0; INSERT INTO @ResultTree SELECT ---------------------------------------- ID = A.ID -- ID ,Name = A.Name -- 명칭 ,ParentID = A.ParentID -- 부모 ID ---------------------------------------- ,TreeLevel = @TreeLevel ,TreePath = RIGHT('00000000' + CAST(A.ID AS VARCHAR(8)), 8) FROM Menu AS A WITH(NOLOCK) WHERE A.ID = @ParentID; WHILE @@ROWCOUNT > 0 BEGIN SELECT @TreeLevel = @TreeLevel + 1; INSERT INTO @ResultTree SELECT ---------------------------------------- ID = A.ID -- ID ,Name = A.Name -- 명칭 ,ParentID = A.ParentID -- 부모ID ---------------------------------------- ,TreeLevel = @TreeLevel ,TreePath = B.TreePath + '/' + RIGHT('00000000' + CAST(A.ID AS VARCHAR(8)), 8) FROM Menu AS A WITH(NOLOCK) INNER JOIN @ResultTree AS B ON B.ID = A.ParentID WHERE EXISTS ( SELECT B.* FROM @ResultTree AS B WHERE B.ID = A.ParentID ) AND NOT EXISTS ( SELECT C.* FROM @ResultTree AS C WHERE C.ID = A.ID ); END; RETURN; END GO |
■ DATETIME 값을 'yyyyMMdd' 문자열로 변환하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
CREATE FUNCTION dbo.GetPackedDate ( @Date DATETIME ) RETURNS NVARCHAR(8) AS BEGIN DECLARE @PackedDate NVARCHAR(8); DECLARE @Year NVARCHAR(4); DECLARE @Month NVARCHAR(2); DECLARE @Day NVARCHAR(2); SET @Year = CONVERT(NVARCHAR(4), YEAR (@Date)); SET @Month = CONVERT(NVARCHAR(2), Month(@Date)); SET @Day = CONVERT(NVARCHAR(2), Day (@Date)); SET @Month = SUBSTRING('0' + @Month, LEN(@Month), 2); SET @Day = SUBSTRING('0' + @Day , LEN(@Day ), 2); SET @PackedDate = @Year + @Month + @Day; RETURN @PackedDate; END |
■ 주민등록번호 '9999999999999' 문자열을 '999999-9999999' 문자열로 변환하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE FUNCTION dbo.ConvertSecurityCodeString ( @Source NVARCHAR(13) ) RETURNS NVARCHAR(14) BEGIN DECLARE @SourceLength INT; SET @SourceLength = LEN(@Source); RETURN CASE WHEN @SourceLength < 7 THEN LTRIM(RTRIM(SUBSTRING(@Source, 1, 6))) ELSE LTRIM(RTRIM(SUBSTRING(@Source, 1, 6))) + '-' + SUBSTRING(@Source, 7, 7) END; END |
■ 전화번호 '99999999999' 문자열을 '999-9999-9999' 문자열로 변환하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
CREATE FUNCTION dbo.ConvertTelephoneNumberString ( @Source NVARCHAR(11) ) RETURNS NVARCHAR(13) BEGIN DECLARE @SourceLength INT; SET @SourceLength = LEN(@Source); RETURN CASE WHEN @SourceLength < 4 THEN LTRIM(RTRIM(SUBSTRING(@Source, 1, 3))) WHEN @SourceLength < 8 THEN LTRIM(RTRIM(SUBSTRING(@Source, 1, 3))) + '-' + LTRIM(RTRIM(SUBSTRING(@Source, 4, 4))) ELSE LTRIM(RTRIM(SUBSTRING(@Source, 1, 3))) + '-' + LTRIM(RTRIM(SUBSTRING(@Source, 4, 4))) + '-' + SUBSTRING(@Source, 8, 4) END; END |
■ 날짜 문자열(yyyyMMdd)을 'yyyy-MM-dd' 포맷 문자열로 변환하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE FUNCTION dbo.ConvertDateString ( @Date NVARCHAR(8) ) RETURNS NVARCHAR(10) AS BEGIN RETURN CASE LEN(@Date) WHEN 8 THEN SUBSTRING(@Date, 1, 4) + '-' + SUBSTRING(@Date, 5, 2) + '-' + SUBSTRING(@Date, 7, 2) ELSE '' END; END |
■ Microsoft SQL Server Management Studio에서 테이블 디자인 변경 허용을 설정하는 방법을 보여준다. 1. Microsoft SQL Server Management Studio를 실행한다. 2. 도구/옵션