database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1508 게시물 읽기
No. 1508
날짜를 가져와서 ..프로시져를 만들었는데요.. sprintf 처럼...........
작성자
문정훈(moonjh09)
작성일
2004-08-26 09:37ⓒ
2004-08-26 09:40ⓜ
조회수
3,075

-------------------------------------------------------------

@DelPeriod 10

 

SELECT @DelDayStr = ''
SELECT @DelDay = DATEADD(day, -@DelPeriod, getdate())

SELECT @YEAR = DATEPART(year, @DelDay)
SELECT @MONTH = DATEPART(month, @DelDay)
SELECT @DAY = DATEPART(day, @DelDay)

SELECT @DelDayStr = Convert(char(4), DATEPART(year, @DelDay))
IF (@MONTH < 10)
SELECT @DelDayStr = @DelDayStr + '0' + Convert(char(1), DATEPART(month, @DelDay))
ELSE
SELECT @DelDayStr = @DelDayStr + Convert(char(2), DATEPART(month, @DelDay))
IF (@DAY < 10)
SELECT @DelDayStr = @DelDayStr + '0' + Convert(char(1), DATEPART(day, @DelDay)) + '%'
ELSE
SELECT @DelDayStr = @DelDayStr + Convert(char(2), DATEPART(day, @DelDay)) + '%'

PRINT @DelDayStr

-----------------------------------------------------------------------------

 

프린트로 찍어보니 2004 밖에는 없더라구요..

@DelDayStr 변수에 값을 넣으려고 합니다.

sprintf 처럼 넣을 수 있는 방법 없나요?

 

이 글에 대한 댓글이 총 3건 있습니다.

sprintf의 정확한 역할은 무엇인지 잘 모르겠습니다만,

프로시져에 변수를 삽입하고자 하는 역할이라고만 이해하겠습니다.

 

create proc proc_name (

    @DelPeriod int

) as

SELECT @DelDayStr = ''
SELECT @DelDay = DATEADD(day, -@DelPeriod, getdate())

SELECT @YEAR = DATEPART(year, @DelDay)
SELECT @MONTH = DATEPART(month, @DelDay)
SELECT @DAY = DATEPART(day, @DelDay)

SELECT @DelDayStr = Convert(char(4), DATEPART(year, @DelDay))
IF (@MONTH < 10)
SELECT @DelDayStr = @DelDayStr + '0' + Convert(char(1), DATEPART(month, @DelDay))
ELSE
SELECT @DelDayStr = @DelDayStr + Convert(char(2), DATEPART(month, @DelDay))
IF (@DAY < 10)
SELECT @DelDayStr = @DelDayStr + '0' + Convert(char(1), DATEPART(day, @DelDay)) + '%'
ELSE
SELECT @DelDayStr = @DelDayStr + Convert(char(2), DATEPART(day, @DelDay)) + '%'

PRINT @DelDayStr

 

로 작성하시고

변수의 입력은

Exec proc_name 10

여기서 10은 DelPeriod에 해당합니다.

여리님이 2004-08-26 09:57에 작성한 댓글입니다. Edit

답변감사합니다.

마찬가지로 2004만 나오는데요..

제가 드린것과 같은데요 ...........수정이 없습니다..................

ms-sql 7.0 을 사용하고 있습니다.

 

문정훈(moonjh09)님이 2004-08-26 10:14에 작성한 댓글입니다.
이 댓글은 2004-08-26 10:16에 마지막으로 수정되었습니다.

sprintf가 출력의 함수인가보네요.

 

출력을 하기 위해서는

print @DelDayStr

구문처럼 입력직접 찍어주셔야 합니다.

여리님이 2004-08-26 14:11에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1511user defined data type [2]
김민영
2004-08-26
2183
1510[질문]constraint 의 주 역활 [1]
윤세민
2004-08-26
2154
1509테이블컬럼별로 합치는 방법좀... [1]
김도훈
2004-08-26
2474
1508날짜를 가져와서 ..프로시져를 만들었는데요.. sprintf 처럼........... [3]
문정훈
2004-08-26
3075
1507datetime에서. mm/dd/yyyy & dd/mm/yyyy [1]
긁적~~
2004-08-26
3824
1505데이터 저장순서대로 조회되는거 아닌가요? [1]
사랑아
2004-08-25
2344
1504초보질문. 3.22222를 숫자형으로 인서트나 업데이트 하려면? [1]
팔봉
2004-08-25
3190
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다