SQLQuery для поиска дат в указанном диапазоне - PullRequest
0 голосов
/ 27 июля 2011

Вот мой запрос для SQLite3 DB

SELECT tddate, 
CASE tdtype 
  WHEN 'LOGIN' THEN MIN(tdtime) 
  WHEN 'SHUTDOWN' THEN MAX(tdtime) 
  ELSE NULL
END AS tdtime, tdtype, tdusername 
FROM TimeData
WHERE tdusername LIKE 'joe.shmoe' 
AND tddivision = 'divisionA' 
AND tddate > '6/1/2011' 
AND tddate < '7/5/2011' 
GROUP BY tddate, tdtype, tdusername 
ORDER BY tddate, tdtime DESC

Результаты - это даты с 30.06.2011 по 11.11.2011.

Я попробовал другой запрос (гораздо проще изолировать проблему). Я получаю те же результаты.

SELECT * 
FROM TimeData
WHERE tddate > '6/1/2011' 
AND tddate < '7/5/2011' 
ORDER BY tddate DESC

Вот DDL для таблицы

CREATE TABLE [TimeData] (
  [tdtag] CHAR(8), 
  [tdusername] CHAR(50), 
  [tddivision] CHAR(50), 
  [tddate] CHAR(10), 
  [tdtime] CHAR(8), 
  [tdipaddress] CHAR(14), 
  [tdtype] CHAR(8));

1 Ответ

1 голос
/ 27 июля 2011

SQLite не имеет истинного типа данных «дата» и очень требователен к формату строк даты. Попробуйте указать свои даты в формате: YYYY-MM-DD. Для получения более подробной информации см. Документацию здесь .

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