Как я могу вернуть данные в наборе результатов SQLite на основе диапазона дат?

У меня есть член столбца/класса типа DateTime в моей таблице class/SQLite.

Однако оба эти запроса:

SELECT * FROM PhotraxBaseData WHERE dateTimeTaken >= '11/11/2009' AND dateTimeTaken <= '11/11/2014'

-и этот:

SELECT * FROM PhotraxBaseData WHERE dateTimeTaken BETWEEN '11/11/2009' AND '11/11/2014'

... не возвращать никаких записей. Оба они, кажется, приняты с точки зрения синтаксиса (они работают без ошибок), но возвращают «(0 элементов)» в LINQPad, даже если между этими датами есть несколько записей.

Мне было предложено использовать этот SQL:

SELECT * FROM PhotraxBaseData WHERE dateTimeTaken BETWEEN CONVERT(DATETIME,'2009-11-11') AND CONVERT(DATETIME,'2014-11-11');

... но при тестировании LINQPad раздраженно сказал мне: «Ошибка SQLite, нет такого столбца: DATETIME»»

Итак, каково решение? Какой синтаксис/методология запроса мне нужен для получения правильного подмножества данных?

ОБНОВИТЬ

Это работает:

SELECT * FROM PhotraxBaseData, ГДЕ dateTimeTaken >= ? И dateTimeTaken ‹= ?

ОБНОВЛЕНИЕ 2

Однако, чтобы преобразовать дату, хранящуюся в DateTimeOffset, в то, что нужно видеть SQLite, я написал эту служебную функцию:

(Я знаю, что это очень многословно, но, зная, как путь ведет к пути, я, вероятно, оставлю это на другой день, но... в любом случае):

// Dates were in format "4/25/2008 10:38:56 AM - 07:00" which SQLite could not grok
// It needs it like:"2008-04-25 10:38:56
internal static String SQLitifiedDate(DateTimeOffset aDate, bool BeginningOfDay)
{
    const string BEGIN_DAY = "00:00:00";
    const string END_DAY = "23:59:59";
    String timeStr = END_DAY;
    if (BeginningOfDay)
    {
        timeStr = BEGIN_DAY;
    }

    DateTimeOffset dto = aDate;
    int Year = dto.Year;
    int Month = dto.Month;
    int Day = dto.Day;
    String year = Year.ToString();
    String month = Month.ToString();
    if (month.Length == 1)
    {
        month = "0" + month;
    }
    String day = Day.ToString();
    if (day.Length == 1)
    {
        day = "0" + day;
    }
    return String.Format("{0}-{1}-{2} {3}", year, month, day, timeStr);
}

person B. Clay Shannon    schedule 04.11.2014    source источник
comment
Можете ли вы привести пример вывода того, что возвращает код без оператора where   -  person Matt    schedule 04.11.2014
comment
Формат даты в SQLLITEYYYY-MM-DD. Это может привести к ошибке.   -  person Ankit Bajpai    schedule 04.11.2014
comment
@AnkitBajpai: Но даже последний (где используются 2009-11-11 и 2014-11-11) говорит мне, что я несчастный кретин.   -  person B. Clay Shannon    schedule 04.11.2014