代码之家  ›  专栏  ›  技术社区  ›  M.E.

从sqlite中的日期时间字段中选择特定日期

  •  0
  • M.E.  · 技术社区  · 7 年前

    我在表中有以下记录,第3列是sqlite中的日期时间类型。

    sqlite> .schema candlestick
    CREATE TABLE "Candlestick" (
      "id" INTEGER PRIMARY KEY AUTOINCREMENT,
      "timeframe" TEXT NOT NULL,
      "timestamp" DATETIME NOT NULL,
      "open" DECIMAL(12, 6) NOT NULL,
      "high" DECIMAL(12, 6) NOT NULL,
      "low" DECIMAL(12, 6) NOT NULL,
      "close" DECIMAL(12, 6) NOT NULL,
      "volume" DECIMAL(12, 6) NOT NULL
    );
    
    sqlite> select * from candlestick limit 10;
    3668401|Europe/Berlin|1999-12-14 08:02:00+01:00|6183|6183|6183|6183|1
    3668402|Europe/Berlin|1999-12-14 08:03:00+01:00|6180.5|6183|6180.5|6181|133
    3668403|Europe/Berlin|1999-12-14 08:04:00+01:00|6181.5|6187.5|6181.5|6187.5|55
    3668404|Europe/Berlin|1999-12-14 08:05:00+01:00|6186|6186|6184.5|6185|166
    3668405|Europe/Berlin|1999-12-14 08:06:00+01:00|6182|6184.5|6180.5|6181|31
    3668406|Europe/Berlin|1999-12-14 08:07:00+01:00|6181|6181|6175.5|6176|62
    3668407|Europe/Berlin|1999-12-14 08:10:00+01:00|6174.5|6174.5|6174.5|6174.5|2
    3668408|Europe/Berlin|1999-12-14 08:11:00+01:00|6176.5|6177|6176|6177|7
    3668409|Europe/Berlin|1999-12-14 08:13:00+01:00|6174|6174|6174|6174|23
    3668410|Europe/Berlin|1999-12-14 08:15:00+01:00|6174|6174|6173|6173|133
    

    我如何选择一个给定的日期(比如 1999-12-15 )从所有寄存器?也就是说,所有属于那一天的登记簿,不管它们有什么时间。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Gordon Linoff    7 年前

    一个简单的方法是使用不平等:

    where timestamp >= '1999-12-15' and
          timestamp < '1999-12-16'
    

    这个公式允许SQLite使用索引来检索值——如果有合适的索引可用的话。

    sqlite还具有 date() 功能(实际上 strftime() 所有SQLite日期/时间函数的基础)。所以你也可以写:

    where date(timestamp) = '1999-12-15'
    
        2
  •  1
  •   forpas    7 年前

    这个 "timestamp" 列的数据类型实际上是 TEXT 在里面 数据库 ,
    所以你可以使用 substr() 函数只提取日期部分:

    select * from candlestick
    where substr(timestamp, 1, 10) = '1999-12-15'
    

    您可以使用 like 操作员:

    select * from candlestick
    where timestamp like '1999-12-15%'
    

    看到这个 link 有关更多信息 数据库 数据类型

    推荐文章