2013-10-20 6 views
2

사이 daydifference ... 나는이 쿼리를 실행합니다SQLite는 그냥 SQLite는 학습이 개 날짜 필드

select guests.[GUEST_NAME],guests.[GUEST_SURNAME],guest_data.[START_DATE],guest_data.[END_DATE] 
from guests 
INNER JOIN guest_data 
ON guests.guest_id=Guest_data.guest_id 
order by guests.[GUEST_SURNAME] ASC 

이 확인 작업을하지만 난 배울 필요가 : 나는 시작일 사이 DATEDIFF로 일로 을 추가 필드를 얻을 수있는 방법 , end_date? 추가 시도 :

select guests.[GUEST_NAME],guests.[GUEST_SURNAME],guest_data.[START_DATE],guest_data.[END_DATE],DAYS as Daysbetween(guest_data.start_date,guest_data.end_date) 

그러나 작동하지 않습니다. 또한이 쿼리는 어떻게 delphi로 작성 될까요?

+3

['이 게시물'] (http://stackoverflow.com/q/289680/960757)? Btw. 이 질문은 델파이와 전혀 관련이 없습니다. 그것은 순수한 SQLite 및 SQL 질문입니다. – TLama

+0

SQLite에 전용 날짜 유형이 없다는 것을 감안할 때, 중요한 정보는 날짜를 저장하는 방법입니다. Delphi 컨텍스트에서 Delphi TDateTime으로 저장하는 것은 유혹입니다. 만약 그렇다면, SQLite의 내부 날짜/시간 함수는 값을 이해하지 못하지만, 다른 날짜와 시간을 구할 수 있습니다 (1990 년을 기준으로 날짜를 다루지 않는다고 가정 할 때). –

답변

3
select guests.[GUEST_NAME],guests.[GUEST_SURNAME],guest_data.[START_DATE],guest_data.[END_DATE], 
julianday(guest_data.end_date) - julianday(guest_data.start_date) AS DAYS_INTERVAL 
from guests 
INNER JOIN guest_data 
ON guests.guest_id=Guest_data.guest_id 
order by guests.[GUEST_SURNAME] ASC 

이 구문 구조를 시도하고 게시 해주십시오. "DAYS_INTERVAL"이라는 결과 집합에서 일 간격이 별도의 열로 반환되어야합니다.

+0

좋아요 .... 내가 물어 본다면 어떻게 DAYS_INTERVAL을 (를) 특정 손님에게 합산 할 수 있습니까? – user763539

+0

귀하의 의견에 대해 질문하신 집합을 적용하려면 다음을 시도하십시오. 손님 [GUEST_NAME], 손님 [GUEST_SURNAME], guest_data. [START_DATE], guest_data. [END_DATE], SUM JULIANDAY (guest_data.end_date) -. JULIANDAY DAYS_INTERVAL AS 손님에서 (guest_data.start_date)) INNER이 손님 Guest_data.guest_id 주문 guest_data ON guests.guest_id = Guest_data.guest_id 그룹 참여하기 [GUEST_SURNAME] ASC는 나를 보자 –

+0

그것이 당신을 위해 일하는지 알으십시오 –