【问题标题】:Data retrieving from sqlite DB between two dates - using objective c在两个日期之间从 sqlite DB 检索数据 - 使用目标 c
【发布时间】:2016-01-29 07:00:33
【问题描述】:

我正在使用以下带有日期过滤的查询,但我得到了错误的结果。

SELECT * FROM TRANSACTIONSHISTORY 
WHERE DATE > "29-01-2015 12:00:00" 
AND DATE < "30-01-2015 00:00:00" AND USERID=abc

我得到的日期列的值为 2016 年 1 月 29 日记录的结果,我在这里缺少什么,谁能帮我摆脱这个值。

【问题讨论】:

  • 数据库中日期值的格式是什么? “29-Jan-2016”是实际值吗?

标签: ios objective-c sqlite ios9.1


【解决方案1】:

SQL 中的日期格式将不起作用,因为 SQLite 没有本机日期时间类型,因此它通常存储为字符串、YYYY-MM-DD HH:MM:SS.SSS 格式,或表示自 @ 以来的秒数的数值987654323@。请参阅 SQLite.org 上的 date and time types。请注意,如果您使用序列为年、月、日的字符串表示形式(在排序/查询此字符串字段时,此字母数字字符串将首先按年正确排序,然后是月,然后是日,即在进行像您这样的查询时至关重要)。

如果您确实将日期作为DD-MM-YYYY HH:MM:SS 格式的字符串存储在数据库中,则应考虑将保存值的格式更改为一种批准的日期格式。这将使与数据库的日期交互变得更加容易,允许像您要求的那样进行查询(但显然,DD-MM-YYYY 替换为 YYYY-MM-DD 格式)。

【讨论】:

    【解决方案2】:

    您已将字符串转换为 Date

    SELECT * FROM TRANSACTIONSHISTORY WHERE DATE between Datetime('29-01-2015 12:00:00') and Datetime('30-01-2015 00:00:00') AND USERID=abc
    

    【讨论】:

    • 但对我来说,它没有给出以下查询的结果,SELECT * FROM TRANSACTIONSHISTORY WHERE DATE > Datetime('29-01-2016 01:48:30') AND DATE
    • 您为“DATE”使用的数据类型是什么?
    • 我只使用那个 DATE 作为字符串数据类型
    • 我没有 2014 年的记录,但它没有考虑该日期的年份,SELECT * FROM TRANSACTIONSHISTORY WHERE DETWEEN '28-Jan-2014 00:00:00' AND '29-Jan -2014 00:00:00' AND USERID=00959258503330
    【解决方案3】:

    第一个答案正是您所需要的。您在代码中所做的是使用 ASCII 值比较字符串。

    我建议您使用 linux 时间戳,例如:1453818208,这样更易​​于保存和比较。此外,它始终可以转换为人类可读的日期,例如:29-01-2015 12:00:00。

    SELECT * FROM TRANSACTIONSHISTORY WHERE DATE > "29-01-2015 12:00:00" AND DATE < "30-01-2015 00:00:00" AND USERID=abc

    希望对你有帮助:)

    【讨论】:

      【解决方案4】:

      第一次尝试没有时间,然后尝试日期和时间,希望我会为你工作

      SELECT TRANSACTIONSHISTORY
      FROM SHIPMENT 
      WHERE DATE 
      BETWEEN '11-15-2010' 
      AND '30-01-2015'
      // you can try this one  also
      SELECT * FROM TRANSACTIONSHISTORY WHERE DATE BETWEEN "2011-01-11" AND "2011-8-11"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        • 2017-04-25
        • 1970-01-01
        相关资源
        最近更新 更多