通过GUI为日期输入数据库,可以通过FMDatabase读取日期

时间:2012-01-07 19:56:00

标签: cocoa-touch sqlite fmdb

我有一组事件,在我发布应用程序之前,我必须将这些事件提供给数据库,以便应用程序可以从此数据库中读取。

我看过一些这样的帖子,解释了如何将NSDate输入数据库以便可以回读:

  1. iPhone SQLite date problem
  2. Persisting Dates to SQLite3 in an iPhone Application
  3. 现在,我想通过运行以下查询将日期输入数据库:

    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 个答案:

答案 0 :(得分: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')))