Iphone: Как прочитать возвращаемое значение функции SQLite strftime - PullRequest
0 голосов
/ 29 марта 2010

Мне нужно прочитать значение столбца следующего запроса

SELECT strtime ('% Y-% m', создал_at) в качестве поля FROM таблицы Поле GROUP BY

тип поля столбца 3 (я предполагаю, что это блог), но мне нужна строка

Как я должен?

Обновлено

const char * sql = "ВЫБЕРИТЕ CAST (strftime ('% Y', созданный_at) как INTEGER) как год ИЗ таблицы ГРУППА BY год

if (SQLITE_OK == sqlite3_prepare_v2 ([AppDelegate db], sql, -1, & queryhandle, NULL)) { while (SQLITE_ROW == sqlite3_step (queryhandle)) {

   NSSTring* year  = [NSString stringWithFormat:@"%d",sqlite3_column_int(queryhandle, 0)];

этот код дает мне 3460 как год

(проверили приведение как целое число, и приведение как varchar и функцию sqlite3_column_text)

1 Ответ

1 голос
/ 29 марта 2010

Пока created_at имеет формат строки времени, указанный в sqlite docs , не имеет значения, какой тип хранения используется в определенном кортеже (хотя вы можете узнать, используя typeof) функция. Результатом функции strftime (вы назвали ее field) является текст или ноль.

CREATE TABLE t (x BLOB);
INSERT INTO t VALUES ("2010-03-29\x0"), ("2010-03-28");
SELECT strftime("%Y-%m", x), typeof(strftime("%Y-%m", x)), typeof(x) FROM t;
|null|text
2010-03|text|text
...