我在表中有以下记录,第 3 列是 sqlite 中的 Datetime 类型。
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
从所有寄存器中选择一个给定的日期(比如)?IE 所有属于那一天的寄存器,无论他们有什么时间。
一个简单的方法是使用不等式:
where timestamp >= '1999-12-15' and
timestamp < '1999-12-16'
这个公式允许 SQLite 使用索引来检索值——如果有合适的索引可用。
SQLite 还有一个date()
函数(它实际上strftime()
是所有 SQLite 日期/时间函数的基础)。所以你也可以写:
where date(timestamp) = '1999-12-15'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句