SQLQuery查找指定范围内的日期

时间:2011-07-27 18:18:15

标签: sql select sqlite

以下是我对 SQLite3数据库

的查询
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

结果是2011年6月30日至2011年11月7日的日期

我尝试了另一个查询(更简单地隔离问题)。我得到了相同的结果。

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 个答案:

答案 0 :(得分:1)

SQLite没有真正的“日期”数据类型,它对日期字符串的格式非常挑剔。请尝试使用以下格式指定日期:YYYY-MM-DD。有关详细信息,请参阅文档here