java Sqlite日期时间类型问题
我试图从Java向sqlite数据库中插入datetime,但事情很奇怪
当我使用代码Calendar.getInstance().getTime()
插入时,表中的值(例如)为1359960520718。
当我使用字符串2010-01-01
插入到表中时,值为normal:2010-01-01
但是当我使用字符串2010-21-51
插入到表中时,表中的值是2010-21-51。那是一个无效的日期。
怎么了
你可以在下面搜索框中键入要查询的问题!
我试图从Java向sqlite数据库中插入datetime,但事情很奇怪
当我使用代码Calendar.getInstance().getTime()
插入时,表中的值(例如)为1359960520718。
当我使用字符串2010-01-01
插入到表中时,值为normal:2010-01-01
但是当我使用字符串2010-21-51
插入到表中时,表中的值是2010-21-51。那是一个无效的日期。
怎么了
# 1 楼答案
这是因为SQLite是动态类型的。您可以将任何类型的值写入任何列,它不会抱怨—它可以以不同的类型静默地存储它
根据documentation,日期时间可以存储为
在您的例子中,SQLite无法将无效日期转换为整数格式,而被迫将其存储为标准字符串。此日期无效,但SQLite不在乎
# 2 楼答案
您可以使用日历中的参数新建日期类型的日期。getInstance()。getTime(),例如:
然后,也许应该使用SimpleDataFormat将日期格式化为所需的字符串,如:
然后,将timeStr插入表中。。。如果在数据库的insert语句中执行某些操作,则还可以使用其他方法