zoukankan      html  css  js  c++  java
  • 根据时间删除sqlite3中数据

    //根据时间删除

    - (void)deleteDataWithTime:(NSString *)time at:(NSString *)tableName{

        //NSString *deleteSql = @"delete from LBBMesTable where Id =?";

        NSString *tab = [tableName stringByReplacingOccurrencesOfString:@".db" withString:@""];

        

        NSString *deleteSql = [NSString stringWithFormat:@"delete from %@ where time <?",tab];

       // NSData *messageData = [message dataUsingEncoding:NSUTF8StringEncoding];

        

        NSString *path = [NSHomeDirectory() stringByAppendingString:[NSString stringWithFormat:@"/Documents/%@",tableName]];

        _dataBase = [FMDatabase databaseWithPath:path];

        if([_dataBase open]){

            if (![_dataBase executeUpdate:deleteSql,time]) {

                NSLog(@"delete error:%@",_dataBase.lastErrorMessage);

            }

        }

        

        [_dataBase close];

    }

    这样可以直接删除哪个时间之前的数据,其中time是以字符串存储的,相当于比较字符串了,

    //计算距离现在多少秒的时间,返回的是时间的完整字符串,如2014-01-04 06:06:06,如果传入的是负数,则是以前的时间

    +(NSString *)timeStrSinceNow: (NSTimeInterval)timeInterval{

        NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:timeInterval];//计算出这么多时间之前的一个时间

        NSDateFormatter *formatter=[[NSDateFormatter alloc] init];

        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

        NSString *pastTime = [formatter stringFromDate:dat];

        return pastTime;

    }

  • 相关阅读:
    Android Studio 1.0 初体验
    JAVA笔记:死锁的详细解释
    JAVA笔记:多线程的理解及应用(三)
    JAVA笔记:多线程的理解及应用(二)
    JAVA笔记:多线程的理解及应用(一)
    mysql 中文编码
    k8s删除node
    k8s 卸载
    kubernetes 集群master变更ip地址
    docker常用指令
  • 原文地址:https://www.cnblogs.com/ios-wyh/p/4198707.html
Copyright © 2011-2022 走看看