【问题标题】:Java Current Date Time not recognized by Sqlite DateTimeSqlite DateTime 无法识别 Java 当前日期时间
【发布时间】:2012-10-05 05:37:56
【问题描述】:

我在 Android 中使用以下代码来获取当前日期时间

Date currentDateTime = new Date();

并将其存储在sqlite表中

currentDateTime.ToString()

所以在表中的值是这样存储的

"Tue Sep 11 20:32:39 IST 2012"
"Thu Sep 13 17:23:38 IST 2012"
"Thu Sep 13 17:34:38 IST 2012"
"Thu Sep 13 20:21:58 IST 2012"

现在我需要在 sqlite 中按 desc 顺序对它们进行排序,即

select datetime(datecolumn) from table order by datetime(datecolumn) desc;

但是当我在字段上执行 datetime(column) 时,它显示我在日期字段上的所有行都为 null

显然在 sqlite 端存在数据不匹配。但我不知道如何解决它 - 有没有办法我仍然可以更改 sqlite 端的查询以便能够读取它?还是我必须更改 JAVA 代码并以 sqlite 可读格式插入数据。

我也需要时间,因为我正在处理每小时数据。

【问题讨论】:

  • 当您说存储在 sqlite 表中时,您使用的是 JDBC 还是等效的?如果是这样,您为什么不使用setDate(<column>, new java.sql.Date(date.getMillis()) 插入日期字段?如果不是 JDBC,为什么不呢?
  • 对不起,我要提一下我正在使用 JAVA Android sqlite insert helper,将数据直接插入到 sqlite 表中
  • 如果要从 java 代码中添加日期时间,请始终保持日期时间为 YYYY-MM-DD HH:MM:SS 格式。如果您只想将当前日期时间添加到 sqlite db,请使用 sqlite 命令集中的 DateTime('Now','Localtime')。

标签: java android sqlite date datetime-format


【解决方案1】:

我会用

currentDateTime.getTime())

并存储该值 - 数据库中所需的空间更少,我假设为 sqlite 排序更快

【讨论】:

    【解决方案2】:

    请参阅Date And Time Functions 了解 SQLite 识别为日期的格式列表。

    如果您希望数据库字段比单个毫秒值更具可读性,请将字符串格式化为YYYY-MM-DD HH:MM:SS

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2014-12-30
      • 2023-04-07
      • 2015-10-11
      • 2021-05-20
      • 2013-03-03
      相关资源
      最近更新 更多