YYYY / MM / DD HH:MM格式的Air Sqlite日期

时间:2011-08-24 02:08:24

标签: flex sqlite air

当我玩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?

非常感谢你。

2 个答案:

答案 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);
}

应该有效