|
표준 SQL(ANSI SQL)은 아니고 SQL-Server에서 지원하는 함수 입니다...
지정한 두 날짜간의 지정된 단위의 시간차이를 계산하는함수입니다...
's'보다는.. second를 사용하시는것을 권장해드립니다...
Select * from table1 where DATEDIFF(minute,StartDate, EndDate ) > 6
쿼리에 관한 질문은.. .http://sqler.pe.kr 에서 찾아보시는게 빠르실겁니다^^
머슴.한석복 님이 쓰신 글 :
: 표준 SQL인지는 모르겠습니다만, 어제 이 문제를 고민하면서 이리저리 방법을 찾다가 이런 방법을 하나 우연찮게 찾아낸게 있습니다.
:
: 그건, DATEDIFF라는 함수 인데요..(DATEADD 도 있네요)
:
: Select * from table1 where DATEDIFF( 's', table1.StartDate, table1.EndDate ) > 360
: 인자중에, s가 Second의 의미이구요, 이 단위는
: 년도, 분기, 월, 일수( dayofyear), 주, 일(day), 요일, 시, 분, 초 밀리초
: 까지 표현을 할수가 있게 되어 있군요.
:
: 이런식으로 사용하니까, 되는듯이 보이는군요.
: 아무튼, 답변 고맙습니다. 업무에 많은 도움이 되었습니다.
:
: 정재만 님이 쓰신 글 :
: : 전에 프로시즈로 많이 작성하곤 했는데 물론 제가 한건 아니고
: :
: : 꼼수하나 가르쳐 드리죠. 도움이 되었으면 하네요.
: :
: : Table1안에 Field(MakeDate)가 DateTime type이 있다고 하면
: :
: : 두 시간차가 6분이상인 데이터 찾고 싶다.
: :
: : select * from Table1 where Table1.MakeDate < '날짜키'
: :
: : 날짜키는 만드는법 날짜키가 2006/07/05 21:10:00 라면 여기다 +-6분을 마이너스 해주면 됩니다.
: :
: : 시간날짜에 시간값을+-해주는 함수(빌더/델파이)가 있는것 같는데 넘오래되어 기억안나네요...
: :
: :
: : 머슴.한석복 님이 쓰신 글 :
: : : 예를들어서,
: : : Field가 DateTime type의 데이터 이고,
: : : '년월일시분초' 형식으로 데이터를 입력 했다고 가정을 하고,
: : :
: : : Select 문에서,
: : : 두 날짜의 차가 6분 인 데이터를 검색한다고 한다면,
: : : from 절에 어떻게 조건식을 사용 해야 할까요?
: : :
: : : 데이터를 그냥 찾은 후에, 찾아놓은 데이터를 레코드 수만큼 루프 돌면서
: : : 데이터를 읽어서 연산하는것은
: : : (년월일시분초)*24*60*60 하면 초단위로 환산을 해서 하면 되던데요.
: : :
: : : 이런것들이, from절에서 될리도 없고...
: : : select * from table1 where (date1)*24*60*60 > 360
: : : 이런게 되진 않겠죠..ㅋㅋ..
: : : 아무튼,
: : : 방법이 있을까요? 아시는분 리플좀 부탁 드립니다.
|