Ios FMDB和datetime()函数
我在日期和FMDB方面有一些问题。我有一大堆带有日期时间值的记录,我想按日期/小时等进行分组。使用基本的sqllite查询工具,我确定了要使用的正确sql语法: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函
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问题。如果您仍然有问题,请告诉我们。不过,我相信您现在已经找到了解决问题的其他方法