最近要写一个android平台上的小应用,遇到了怎样在数据库中存取时间的问题。
刚刚开始设计数据库的时候发现这个sqlite数据库有点特殊,它的数据型并没有严格的区别,无论什么数据,只要那一列存的下就没问题,它并不会因为存入的数据类型与定义表的时候给的数据类型不一致而报错。
此外,因为DATETIME, TIME会被转化为numeric,其实就是转化为特定大小的存储空间而已。
基于以上原因。我决定在程序内部的时间和日期采用如下方式表示:
2012-12-11 13:12:12 转化为long来存取。因为在sqlit中会将DATETIME列转化为numeric,不能用int,长度不够。
13:12:12 转化为int来存取。sqlite中会TIME列转化为numeric,用int就可以存下。
因为在java中Date内部也是一个基于unix时间戳的一个long型数值。
要显示给用户的时候用DateFormat或SimpleDateFormat格式化一下即可。
sqlite测试:
查看工具:sqlite manager
表:
插入的数据: