如何在 SQLite 中将毫秒转换为日期

问题描述 投票:0回答:4

我将 Calendar.getTimeInMilliseconds() 中的日期存储在 SQLite DB 中。 我需要在 SELECT 语句中按每个月标记第一行,因此我需要仅使用 SQLite 函数将时间(以毫秒为单位)转换为任何日期格式。我怎样才能避免这种情况?

android sqlite android-sqlite
4个回答
67
投票

SQLite 支持的日期/时间格式之一是 Unix 时间戳,即自 1970 年以来的秒数。 要将毫秒转换为该值,只需除以 1000 即可。 然后使用一些

日期/时间函数

来获取年份和月份: SELECT strftime('%Y-%m', MillisField / 1000, 'unixepoch') FROM MyTable



28
投票

SELECT datetime(1346142933585/1000, 'unixepoch');

可以从这个小提琴验证这一点

http://sqlfiddle.com/#!5/d41d8/223


22
投票

转换查询中的毫秒,如下所示
  • select date(milliscolumn/1000,'unixepoch','localtime') from table1
    在保存到数据库之前将毫秒转换为秒,然后在sql查询中使用日期函数

0
投票
从表1中选择日期(毫秒/1000,'unixepoch','localtime')

这对于 GTC 以外的当地时间来说更好。

但是取决于

日期和时间函数

我使用'%F-%T'作为格式化程序,为什么结果为空?

© www.soinside.com 2019 - 2024. All rights reserved.