Android - 日期时间字段 hell ! - 好吧,反正看起来是这样! :)

标签 android sqlite datetime

当插入新记录时,我将 Calendar.getTime() 的值存储在名为“已创建”的 SQLite 数据库字段中。

该字段是“日期时间”,它以这种格式存储值:EEE MMM dd HH:mm:ss z yyyy。

我的应用程序有 2 个日期选择器,因此您可以选择开始和结束日期/时间来创建范围 - 我需要做的就是运行查询以返回在此时间跨度内创建的记录,但这让我很头疼!

我的查询是这样的:

public Cursor GetAllByDateRange(Date dtStart, Date dtEnd) {

    return database.query(DATABASE_TABLE, new String[] { 
            KEY_id, KEY_CREATED, KEY_VALUE, KEY_DESCRIPTION, KEY_ISEXPENSE}, 
            KEY_CREATED + " BETWEEN '" + dtStart + "' AND '" + dtEnd + "'",
            null, null, null, KEY_CREATED + " DESC");
}

我想我理解了这个问题,但不知道如何解决它,我相信这种方法不会起作用,因为 SQLite 以字符串格式存储日期(如果这是真的,我不确定为什么他们甚至有 Date' 类型!) , 所以他们被比较为字符串而不是日期..

看来我的选择有限,因为我需要记录时间和日期,今天大部分时间都在网上搜索我完全不知所措 - 谁能建议我如何继续前进?

谢谢!

最佳答案

如果可能,将您的日期作为整数存储在数据库中,存储来自 date.toTime() 的毫秒值。然后从 new Date(milliseconds) 实例化一个日期对象就容易多了,然后您可以根据语言环境格式化输出。

关于Android - 日期时间字段 hell ! - 好吧,反正看起来是这样! :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960681/

相关文章:

php - 验证 mysql 行是否与另一行冲突

c# - 两个日期之间的天数错误

android - Activity 中的观看次数过多

android - 在 iOS 和 Android 之间共享登录凭据

android - 如何有效地使用 ormlite 在 android sqlite 数据库中插入批量数据

macos - 在 Mac OSX 上安装 SQLite - 或者,是否有推荐的备用数据库?

java - android中的以下sqlite语句有什么问题

android - Android 上的 Kafka 生产者

android - 即使应用程序关闭,如何保持 IntentService 运行?

java - 使用 jSTL 格式化日期时间以显示时区偏移