sqlite-запрос для получения данных между двумя датами, сохраненными в виде строк - PullRequest
1 голос
/ 15 ноября 2011
 NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO ADDEXPENSE(date, description, category, amount) VALUES (\"%@\", \"%@\", \"%@\",\"%@\")", fieldOne.text, fieldTwo.text,fieldThree.text , fieldFour.text];

Я взял указатель даты для fieldOne, и сохранение данных работает нормально.но как получить данные между двумя датами?

, и это то, что я использовал в качестве сборщика

UIDatePicker *picker = (UIDatePicker *)sender;
NSDate *dateSelected = [picker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

Ответы [ 5 ]

1 голос
/ 11 июля 2014

Я тоже застрял с той же проблемой. Я должен получить данные между двумя датами. но я сохраняю дату в виде строки в SQLite в 'YYYY-MM-dd' в этом формате. Затем я использую запрос ниже, чтобы получить данные. И я получил результат. В этом случае я просто приведу свой столбец даты к типу Date.

SELECT * FROM tableName WHERE columnnName(Date) BETWEEN 'YYYY-MM-dd' and 'YYYY-MM-dd'
1 голос
/ 15 ноября 2011

Я предлагаю вам прочитать Функции даты и времени на SQLite веб-сайте.Вы можете адаптировать эти функции для извлечения метки времени unix из формата, сохраненного NSDate , а затем просто использовать их в своем запросе SQL в предложении WHERE .

1 голос
/ 15 ноября 2011

Вы можете создать запрос sqlite для выбора строк в диапазоне дат. Сначала вы должны отформатировать в формате, дружественном к SQL, например:

NSDate * selected = [datePicker date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString * dateString = [dateFormat stringFromDate:selected];
NSString * sql = [[NSString alloc] initWithFormat:@"SELECT * FROM table WHERE (startdate <= '%@') AND (enddate >= '%@)", dateString, dateString];

и т. Д. Вам необходимо правильно форматировать даты при вставке их в таблицу.

0 голосов
/ 28 апреля 2015

Следующее касалось приложения для iOS, которое я делал, которое использует БД SQLite.

SELECT COUNT(carSold) 
FROM cars_sales_tbl
WHERE date
BETWEEN '2015-04-01' AND '2015-04-30'
AND carType = "Hybrid"

Это работает как шарм!Надеюсь, что кому-то это пригодится!

Ура!

0 голосов
/ 15 ноября 2011

сначала вам нужно получить даты и преобразовать их в nsdates. Затем вы должны проверить дату каждой строки (находится ли она между двумя упомянутыми датами или нет), используя функцию сравнения дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...