-- date 타입 -----------------------------------
date => convert(varchar, GETDATE(),112)
datetime => GETDATE()
select str_replace( convert(varchar,getdate(),20),':',null)
: 현재 분일초,밀리세컨드까지: 152515853
select convert(varchar,GETDATE(),112) || str_replace( convert(varchar,getdate(),20),':',null)
: 현재 연월일시분초밀리세컨드를 다 붙여서
------------------------------------------------------------------------------------------------------
** 오늘날짜 한달전 월까지만 조회 위해 char(6) : convert(char(6),DATEADD(MM,-1,GETDATE()),112)
SELECT SP_NO, ORG_CD, FILED_CD, GUBUN_CD, CONVERT(VARCHAR,DATE,102) DATE,CONVERT(VARCHAR,DATE2,102) DATE2, AC_PLACE, AC_CONTENT, VIOLATION, VIOLATION_CONTENT, STATUS_CD, RESULT_OUT FROM SP_RESULT
WHERE (ORG_CD in (select IN_ORG_CD FROM TB_NEW_ORG where PE_ORG_CD= '1541755') or ORG_CD='1541755')
and
(convert(char(6),DATE,112) >= convert(char(6),DATEADD(MM,-1,'2012.04.01'),112)
and convert(char(6),DATE,112) <= convert(char(6),DATEADD(MM,-1,'2012.04.23'),112)
or convert(char(6),DATE2,112) >= convert(char(6),DATEADD(MM,-1,'2012.04.01'),112)
and convert(char(6),DATE2,112) <= convert(char(6),DATEADD(MM,-1,'2012.04.23'),112)
)
ORDER BY SP_NO DESC
------------------------------------------------------------------------------------------------------
** 오늘날짜 기준으로 하루전 : convert(varchar,DATEADD(DD,-1,GETDATE()),102)
select * ,
convert(varchar,DATEADD(DD,-((select SDATE from SP_SETDATE )),GETDATE()),102) AS LAST_DT
from SP_RESULT
WHERE
DATE > convert(varchar,DATEADD(DD,-((select SDATE from SP_SETDATE )),GETDATE()),102)
select
RATE_ST_DT <= CONVERT(CHAR(8), GETDATE(), 112)
ENTRY_TO >= CONVERT(CHAR(8), GETDATE(), 112)+'0000'
insert
date ==> CONVERT(varchar, GETDATE(), 112)
datetime ==> GETDATE()
ResultSet rs = null;
ArrayList vctDataView = null; //리스트 데이터
HashMap hmDataView = null; //리스트 데이터
vctDataView = mdao.selectQuery(sql.toString());
hmDataView = (HashMap)vctDataView.get(0);
----------------------------------------
datediff
dateformat
datepart
date convert
-------------------------------------------------------
* 날짜 처리 팁
year(), years(), month(), months(), quarter(), quarters(), dateformat() 함수를 주로 이용한다.
1. 현재의 년월(YYYYMM) : select dateformat(now (), 'yyyymm') -> 200711
2. 전월 : select dateformat(months (now (), -1), 'yyyymm') -> 200710
3. 현재 분기 : select year(now()) || quarter(now()) -> 20074
4. 전 분기 : 현재월에서 3개월전의 분기를 구한다.
select year(months(now(), -3)) || quarter(months(now(), -3)) -> 20073
5. 현재 년도 : select year(now()) -> 2007 (integer)
6. 전 년도 : select year(months(now(), -12)) -> 2006 (integer) (혹은 year(years(now(), -1)) 도 가능)
7. 현재 일자를 char(8)로 : select dateformat(now(), 'YYYYMMDD') -> 20071127
8. 년도코드가 'YYYY'로 되어 있는 경우 5번처럼 해서 WHERE절에 사용하면
Integer와 Char 형이 다르므로 에러가 납니다.
delete mytable where year_code = year(now());
이럴 땐 숫자를 문자로 변환하려면 CAST()를 사용합니다.
delete mytable where year_code = CAST(year(now()) as CHAR(4));
9. 말일 구하기 (Return : DATE type)
days(months(cast((dateformat(now(*), 'YYYYMM') || '01') as date), 1) , -1)
'프로그램 > DB' 카테고리의 다른 글
[sybase] user connection 개수 확인 방법 (0) | 2012.07.31 |
---|---|
오라클 트리거 OLD & NEW (0) | 2012.07.31 |
[sybase] sql 명령어 (0) | 2012.05.07 |