Ios FMDB和datetime()函数

Ios FMDB和datetime()函数,ios,sqlite,datetime,fmdb,Ios,Sqlite,Datetime,Fmdb,我在日期和FMDB方面有一些问题。我有一大堆带有日期时间值的记录,我想按日期/小时等进行分组。使用基本的sqllite查询工具,我确定了要使用的正确sql语法: select strftime('%Y-%m-%d',datetime('2001-01-01',zentrydate || 'seconds','localtime')) as dteEntry... 以上工作正常,返回的数据正确。但是,当我尝试使用FMDB包装器执行相同的操作时,我的结果不会返回正确的结果。当我将datetime函

我在日期和FMDB方面有一些问题。我有一大堆带有日期时间值的记录,我想按日期/小时等进行分组。使用基本的sqllite查询工具,我确定了要使用的正确sql语法:

select strftime('%Y-%m-%d',datetime('2001-01-01',zentrydate || 'seconds','localtime')) as dteEntry...
以上工作正常,返回的数据正确。但是,当我尝试使用FMDB包装器执行相同的操作时,我的结果不会返回正确的结果。当我将datetime函数打印到控制台时,使用datetime函数返回的任何字段都将读取为NULL。此外,查询也没有正确执行,因为只返回了1条记录,我知道这是不正确的,因为我可以使用sqllite工具执行相同的查询,返回正确的结果


有人能帮我弄清楚我需要做什么吗?我几周前才下载了FMDB库,因此应该有一个相对较新的版本。

您确定您使用以下工具正确读取了结果集:
虽然[rs next]{

我知道这是一个老问题,但我只是偶然发现了它。有几点想法:

当你说你有一堆datetime记录时,我不确定这在SQLite上下文中是什么意思,因为没有原生datetime数据类型。对于我们这些从其他SQL引擎接近SQLite的人来说,这是一个陌生的概念。它要么存储为字符串,要么存储为数值。请参阅

我是否从zentrydate | | |秒”语法推断zentrydate是自2001年1月1日以来的秒数?如果是这种情况,则在秒之前缺少一个空格,例如zentrydate | |秒。如果它不是自2001年1月1日以来的秒数,则我不知道该如何处理。无论如何,这肯定会导致FMDB返回N所有值

您可能需要重新评估localtime的使用

总之,我怀疑这不是一个FMDB问题,而是一个更广泛的SQLite问题。如果您仍然有问题,请告诉我们。不过,我相信您现在已经找到了解决问题的其他方法