Функция FMDB и datetime () - PullRequest
       31

Функция FMDB и datetime ()

0 голосов
/ 06 декабря 2011

У меня есть несколько проблем с датами и FMDB. У меня есть целая куча записей со значениями даты и времени, которые я хочу сгруппировать по дате / часу и т. Д. Используя базовый инструмент запросов sqllite, я определил правильный синтаксис sql для использования:

select strftime('%Y-%m-%d',datetime('2001-01-01',zentrydate || 'seconds','localtime')) as dteEntry...

Вышеуказанное работает и возвращенные данные верны. Тем не менее, когда я пытаюсь выполнить то же самое с помощью оболочки FMDB, мой результат не возвращает правильные результаты. Любые поля, возвращаемые при использовании функции datetime (), читаются как NULL, когда я распечатываю их на консоль. Кроме того, запрос также не выполняется правильно, так как возвращается только 1 запись, я знаю, что это неправильно, поскольку я могу выполнить тот же запрос, используя мои инструменты sqllite, которые возвращают правильные результаты.

Может ли кто-нибудь помочь мне решить, что мне нужно делать? я только что скачал библиотеку FMDB несколько недель назад, поэтому у меня должна быть относительно свежая версия.

Ответы [ 2 ]

0 голосов
/ 01 мая 2012

Я знаю, что это старый вопрос, но я наткнулся на него. Пара мыслей:

  1. Когда вы говорите, что у вас есть куча записей даты и времени, я не уверен, что это означает в контексте SQLite, поскольку нет собственного типа данных даты и времени. (Это понятие пришельцев для тех из нас, кто приближается к SQLite из других движков SQL.) Он либо хранится в виде строки, либо в виде числового значения. (См. Типы данных SQLite .)

  2. Могу ли я вывести из вашего синтаксиса zentrydate || 'seconds' ", что zentrydate - это количество секунд с 01.01.2001? Если это так, вы пропускаете пробел до секунд, например, zentrydate || ' seconds'. Если это не количество секунд с 01.01.2001, то я не знаю, что с этим делать. Несмотря на это, это определенно заставит FMDB возвращать значения NULL.

  3. Возможно, вы захотите переоценить использование localtime.

В итоге, я подозреваю, что это не проблема FMDB, а более широкая проблема SQLite. Если у вас все еще есть проблемы, дайте нам знать. Я уверен, что вы уже нашли другие способы решения вашей проблемы.

0 голосов
/ 13 декабря 2011

Вы уверены, что правильно прочитали результат с: Хотя ([rs далее]) {

...