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

时间:2013-06-07 05:59:53

标签: android sqlite android-sqlite

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

3 个答案:

答案 0 :(得分:44)

SQLite's supported date/time formats中的一个是Unix时间戳,即自1970年以来的秒数。 要将毫秒转换为该值,只需除以1000。

然后使用一些date/time function来获取年份和月份:

SELECT strftime('%Y-%m', MillisField / 1000, 'unixepoch') FROM MyTable

答案 1 :(得分:20)

Datetime期望epochtime,以毫秒为单位,以秒为单位。转换为秒和&应用

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

可以从这个小提琴中验证这个

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

答案 2 :(得分:16)

您是否需要避免毫秒到目前为止的转换或函数将毫秒转换为日期? 由于sqlite日期函数使用秒,因此您可以尝试

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