根据日期删除行

时间:2013-05-31 19:38:20

标签: ios objective-c sqlite

嗨,这可能是一个简单的答案,我只是在努力理解如何处理它。

我用:

创建一个表
"CREATE TABLE IF NOT EXISTS PERSONS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, AGE   INTEGER, DT DATETIME DEFAULT CURRENT_TIMESTAMP)";

我试图根据姓名,年龄和注册日期删除一个人,以避免删除碰巧与另一个人姓名和年龄相同的人(因此当前日期应该区分)

,删除语句为:

[NSString stringWithFormat:@"Delete from persons where name is '%s','%s'",[p.name UTF8String],[p.date UTF8String]]];

我遇到的问题是'%s'一定不适合日期,因为它没有删除任何日期。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我认为你对删除声明还有很长的路要走。它应该更像是:

[NSString stringWithFormat:@"Delete from PERSONS where NAME = \"%@\" and DT = \"%@\"", p.name, p.date];

PERSONS和NAME需要上限,因为这是您在创建中定义它们的方式。您的p.data需要与sqlite存储日期的方式相对应。 danypata's link应该帮助你。

答案 1 :(得分:0)

首先,我建议您在sql环境中尝试查询,以便确定语法中是否存在任何错误。对我来说,看起来你应该使用%@而不是%s。 %s用于Objective-c中的C,%@。看看这个post