Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android sqlite舍入“错误”_Android_Sqlite - Fatal编程技术网

Android sqlite舍入“错误”

Android sqlite舍入“错误”,android,sqlite,Android,Sqlite,我在Android设备上使用SQLite 我试图将时间戳转换为朱利安日,并通过将结果转换为整数对朱利安日进行四舍五入。出于某种原因,2456902.0被四舍五入为2456901。对于“round”函数,我也得到了相同的结果 我确实需要一个解决办法,但我也想解释一下,如果有人有这种情况,为什么会发生 我的代码和结果如下所示: cast(julianday((c.ts/1000), 'unixepoch') as int) as day, julianday((c.ts/1000), 'unixe

我在Android设备上使用SQLite

我试图将时间戳转换为朱利安日,并通过将结果转换为整数对朱利安日进行四舍五入。出于某种原因,2456902.0被四舍五入为2456901。对于“round”函数,我也得到了相同的结果

我确实需要一个解决办法,但我也想解释一下,如果有人有这种情况,为什么会发生

我的代码和结果如下所示:

cast(julianday((c.ts/1000), 'unixepoch') as int) as day, 
julianday((c.ts/1000), 'unixepoch') as jd 
当ts=1409564846705,jd=2456902.0,day=2456901时,日期时间为2014年9月1日星期一04:47:26 CDT

当ts=1409631153881,jd=2456902.8,day=2456902时,日期时间为2014年9月1日星期一23:12:33


我正在尝试将julian days的时间戳转换为按天分组记录,但是一些数据进入了错误的日期,正如您在上面看到的,如果我按天分组,将生成两条记录,但是日期是同一天的一部分。我使用了:strftime“%d”、datetimec.ts/1000、“unixepoch”、“localtime”作为日期。问题是,如果我查询的时间超过一个月,就会出现重复的“月日”。有更好的方法吗?

朱利安日的数字在中午有整数值,所以一天的开始是整数之间的一半:

> SELECT julianday(1409631153881/1000, 'unixepoch', 'start of day');
2456902.5
除非你精确地定义你是想要前一个中午还是下一个中午,否则将朱利安日的数字四舍五入为整数是没有意义的

如果只想按天分组,请将值转换为日期字符串:

date(c.ts / 1000, 'unixepoch', 'localtime')
如果需要可转换为数字的值,请将年份和日期合并:

cast(strftime('%Y%j', c.ts / 1000, 'unixepoch', 'localtime') as int)

或者,只需将时间戳除以一天中的毫秒数,然后需要减去时区的适当偏移量。

感谢您的快速响应。你已经回答了部分问题。我试图将julian days的时间戳转换为按天分组记录,但是一些数据掉到了错误的日期,正如您在上面看到的,如果我按天分组,将生成两条记录,但我认为日期是同一天的一部分。我使用了:strftime“%d”、datetimec.ts/1000、“unixepoch”、“localtime”作为日期。问题是,如果我查询的时间超过一个月,就会出现重复的“月日”。你能提出一个替代方案吗?