【问题标题】:How can I get sum of count between two dates in sqlite如何在sqlite中获得两个日期之间的计数总和
【发布时间】:2020-12-04 08:23:13
【问题描述】:

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

【问题讨论】:

  • 将日期格式更改为 YYYY-MM-DD。
  • 但我无法更改部署,因为我们正在进行一些离线安装。 :-(((
  • 有 TO_CHAR 函数吗?您应该能够将这些日期转换为可排序的顺序。有 TO_DATE 函数吗?您应该能够将查询值转换为日期 -

标签: sql sqlite date between


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以使用字符串运算符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

    【讨论】:

      【解决方案3】:

      这对我有用,谢谢。

      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';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-06
        相关资源
        最近更新 更多