2012-01-07 5 views
0

응용 프로그램을이 데이터베이스에서 읽을 수 있도록 응용 프로그램을 출하하기 전에 데이터베이스에 병입해야하는 일련의 이벤트가 있습니다. 그것은 다시 읽을 수 있도록FMDatabase에서 읽을 수있는 날짜에 대한 GUI를 통해 데이터베이스에 날짜 입력

나는 데이터베이스에있는 NSDate를 입력하는 방법을 설명하는 다음과 같은 몇 가지 게시물을 보았다 :

  1. iPhone SQLite date problem
  2. 이제 Persisting Dates to SQLite3 in an iPhone Application

, 내가 항목에 원하는 다음과 같은 검색어를 실행하여 데이터베이스에 날짜를 표시합니다.

insert into VendorEvents (event_start, event_end, notes, event_name) values (date('2012-01-26'), date('2012-01-26'), 'Republic day of India is the day when our constitution was framed and put into practice', 'Republic day') 
내가 MesaSQLite 응용 프로그램을 통해이 쿼리를 실행하면 예상대로 46,510,403,210는 반환 된 결과는 완벽하다 :

select * from VendorEvents where ((event_start between '2011-12-01 00:00:00 +0000' and '2012-02-01 00:00:00 +0000') or (event_end between '2011-12-01 00:00:00 +0000' and '2012-02-01 00:00:00 +0000')) 

하지만이 응용 프로그램 내에서 FMDatabase을 통해 동일한 쿼리를 실행할 때, 레코드는 반환되지 않습니다.

내 데이터베이스의 VendorEvents에있는 첫 번째 및 두 번째 필드의 데이터 유형은 "날짜"유형입니다. 데이터를 입력하는 방식의 유일한 차이점은 MesaSQLite 응용 프로그램을 사용하는 것입니다. 그래서, 제가 FMDatabase에서 결과를 얻지 못해 어떤 실수를 저지르고 있습니까?

감사합니다, 주권

답변

1

사용 date() 기능. 사용해보기 :

select * from VendorEvents 
where ((event_start between date('2011-12-01 00:00:00 +0000') and date('2012-02-01 00:00:00 +0000')) 
    or (event_end between date('2011-12-01 00:00:00 +0000') and date('2012-02-01 00:00:00 +0000'))) 
관련 문제