在Titanium下,iPhone操作sqlite,时间戳毫秒取值不正确

问题描述:

在Titanium下存如sqlite毫秒级别的时间戳, 再获取的时候得到的数值不正确,有时候还可能是负数..在Android下没有此问题.

解决办法:

  1. 先在数据库中更改原先的时间戳的字段为VARCHAR类型的,以后存储字符串的时间戳,如: '1360229569444'

  2. 由于字符串是无法比较的,在需要根据此字段作为where条件时,使用CAST(expr AS target_type)强制转换为NUMERIC类型,然后进行比较.如:

    select * from mytable where CAST(start_time AS NUMERIC) > 1360229569444

参考资料:

  • SQLite学习手册:三.转换表达式
  • Date Formatting And Format Validation: 一个js日期操作库

你可能感兴趣的:(sqlite,iPhone,Timestamp,Titanium)