【问题标题】:using sqlite's strftime function in android在android中使用sqlite的strftime函数
【发布时间】:2012-08-24 23:42:12
【问题描述】:

您好,我在数据库中插入了一些日期。

当我在另一个表中使用 YYY-MM-DD 格式的 sqlite3 时,当我像

SELECT * 
FROM SDay 
WHERE  strftime('%Y-%m-%d', date)>=strftime('%Y-%m-%d','2013-02-21')
    AND  strftime('%Y-%m-%d', date)<strftime('%Y-%m-%d','2013-09-15')

效果很好。

另一方面,当我在另一个表中使用 YYY-MM 格式时 那么

SELECT * 
FROM SMonth 
WHERE  strftime('%Y-%m', date)>=strftime('%Y-%m','2013-02') 
    AND  strftime('%Y-%m', date)<strftime('%Y-%m','2013-09')

不起作用。为什么会发生,我该如何解决?

谢谢。

【问题讨论】:

    标签: android sqlite strftime


    【解决方案1】:

    在您的第二个语句中,strftime 提供了无效的 timestring。这会导致函数返回NULL

    sqlite> .nullvalue <NULL>
    sqlite> select strftime('%Y-%m','2013-02');
    <NULL>
    

    只需将日期添加到您提供的日期即可正常工作:

    sqlite> select strftime('%Y-%m','2013-02-01');
    2013-02
    

    您可以找到有效timestring 格式here 的列表。

    【讨论】:

    • 是 strftime 处理点吗?例如“ strftime('%dd.%mm.%YYYY', Birthday) > date('now','-30 years')”
    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 2022-09-27
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    相关资源
    最近更新 更多