当我玩Air Sqlite时,我在数据库中保存日期时遇到了一些麻烦
INSERT INTO tblUserComments (comment_text, comment_cat,comment_date,parent_id) VALUES('"+bubbleText.text+"','"+chosenCat+"',DATETIME('now', 'localtime'),'"+_parentId+"')
以下列格式存储comment_date
2455783.2596296296而不是2011/08/09 18:13。
如何将日期数据保存为YYYY / MM / DD HH:MM?
非常感谢你。
答案 0 :(得分:1)
在阅读之后,您的列无法设置为DATE,因为SQLite中没有这样的类型。引用开发手册:
SQLite没有为存储日期留出的存储类 和/或时间。相反,SQLite的内置日期和时间函数 能够将日期和时间存储为TEXT,REAL或INTEGER 值
我建议您将日期保存为epoc时间的INTEGER,然后您可以在选择行或代码时进行转换。我个人更喜欢使用Date类根据时区正确转换它。即。 var date:Date = new Date(epocTime);
答案 1 :(得分:1)
使用参数代替,因为它会自动调整许多问题并将sqlite中列的类型设置为DATE并直接为其分配一个新的Date()对象,或者按以下格式为其指定一个字符串值:
private function dateToMySqlFormat(date:Date = null):String
{
var formattedDate:DateFormatter = new DateFormatter();
formattedDate.formatString = "YYYY-MM-DD JJ:NN:SS";
if(date == null) date = new Date;
return formattedDate.format(date);
}
应该有效