我怎样才能得到sqlite中两个日期之间的计数总和

How can I get sum of count between two dates in sqlite

table 中日期的数据类型是美国格式的日期,即 'mm-dd-yyyy' 我使用 SELECT count from table_name Where Dt<'08/14/2020' AND Dt>'08/01/2020' 以上将 return 日期为 2015 年的结果。我想要 08/14/2020' 和 '08/01/2020 之间的所有计数 似乎它正在比较字符串。请帮我解决这个问题。我什至尝试了它之间的结果也是一样的。

试试这个 - 这应该将 mm/dd/yyyy 转换为 yyyy-mm-dd。 (Sqlite 有一种日期格式)。转换后,您应该能够使用 where 语句作为日期而不是字符串进行过滤。

SELECT   substr(Date, 7) || "-" ||  substr(Date, 1,2) 
  || "-" || substr(Date,4,2) FROM Table

您可以使用字符串运算符SUBSTR(),然后转换为日期格式:

SELECT COUNT(*) AS Count
  FROM tab
 WHERE DATE( SUBSTR(dt,-4)||'-'||SUBSTR(dt,1,5) )
       BETWEEN '2020-08-01' AND '2020-08-14'

为了获得边界日期值的包含计数。

Demo

这对我有用,谢谢。

SELECT COUNT(*) AS Count FROM tab WHERE  DATE( SUBSTR( a.Dt,-4 )||'-'||Substr(a.Dt,1,2)||'-'||Substr(a.Dt,4,2) ) BETWEEN '2019-10-01' AND '2020-08-15';

这同样有效。

SELECT COUNT(*) AS Count FROM tab WHERE tab.date BETWEEN '20191001' AND '20200815';