2011-08-24 32 views
0

当我和空气sqlite的打,我得到了一些麻烦,在数据库中保存日期空气sqlite的日期在YYYY/MM/DD HH:MM格式

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

你有什么麻烦?问题是保存日期,还是显示格式?难道你只是想使用数据库值作为新的Date对象的值,然后使用DateFormatter来显示它? – JeffryHouser

+0

表格结构如何? comment_date列是否设置为DATE? –

+0

@J_A_X,是的。 comment_date列设置为DATE。 – Hoque

回答

1

它读了之后,你的列不能设置为DATE,因为没有在SQLite的这种类型。引用开发手册:

SQLite没有专门用于存储日期 和/或时间的存储类。取而代之的是,SQLite的 的内置日期和时间函数能够存储日期和时间为TEXT,REAL或INTEGER 值

我建议你保存的日期为EPOC时间整数,则您可以在选择行或代码内进行转换。我个人更喜欢使用Date类根据时区正确地进行转换。即。 var date:Date = new Date(epocTime);

+0

但是,AIR编译没扔,当我使用以下任何错误:CREATE TABLE IF NOT EXISTS tblUserComments(COMMENT_ID INTEGER PRIMARY KEY AUTOINCREMENT,COMMENT_TEXT TEXT,comment_cat TEXT,COMMENT_DATE DATETIME,PARENT_ID整数) – Hoque

+0

编译器不会抛出错误那,但也许在执行过程中。或者也许SQLite只是默认它为String。无论哪种方式,它应该是一个整数。 –

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

应该工作

相关问题