2012-01-07 46 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应用此查询,如预期的那样返回的结果是完美的:

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中第一个和第二个字段的数据类型是“Date”类型。我输入数据的唯一区别是使用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')))