当前位置:  开发笔记 > 数据库 > 正文

使用iphone NSdate的sqlite日期时间数据类型?

如何解决《使用iphoneNSdate的sqlite日期时间数据类型?》经验,为你挑选了2个好方法。

在创建记录时,sqlite中是否有一种方法可以自动在表中保存时间戳,然后我可以在我的应用程序中获取并保存为NSDate?

或者我应该使用我的iphone应用程序中的当前时间创建NSdate对象,然后将其插入数据库.如果是这样?数据类型应该是什么列?一个DATETIME?



1> Dimitris..:

我所做的是使用sqlite的current_timestamp(看起来像这样:2009-06-16 12:11:24).要执行此操作,只需将qslite表的行类型设置为

Data type: "DATETIME"
Allow null: NO
Default value: CURRENT_TIMESTAMP

然后使用这样的SQL查询:

@"INSERT INTO 'scores' ('one', 'two', 'three') VALUES ('%d', '%d', '%d')"

忽略日期,以便它会自动获取当前时间值.

然后要将其转换为NSDate,您可以使用NSDateFormatter,如下所示:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //this is the sqlite's format
NSDate *date = [formatter dateFromString:score.datetime];

现在您将该日期作为NSDate对象.只是不要忘记发布我们分配的NSDateFormatter :)



2> pixel..:

没有TIMESTAMP可以在SQLite中使用的数据类型,因此您必须在执行时手动插入时间INSERT.我INTEGER在数据库中使用数据类型,并将其转换NSDate为:

sqlite3_bind_double(insert_statement, 1, [myDate timeIntervalSince1970]);

并将其从数据库中取出:

myDate = [NSDate dateWithTimeIntervalSince1970:sqlite3_column_double(select_statement, 1)];

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有