SQLite 每小时订单数

SQLite count of order per hour

我手头只有 SQLite,我想用 table 计算每天每小时的订单数,其中包含以下几列: orderID, order_datetime(yyyy-mm-dd hh:mm:ss), location

SELECT 
   DATEPART('%H', order_datetime) as 'HOUR',
   COUNT(*) as 'ORDERPERHOUR'
   FROM vanorder
   GROUP BY DATEPART('%H', order_datetime);

我收到错误 'no such function: DATEPART',我如何在 sqlite 的世界中实现这一点?谢谢。

在 SQLite 中,等效使用 STRFTIME():

SELECT STRFTIME('%H', order_datetime) as hour
       COUNT(*) as ORDERPERHOUR
FROM vanorder
GROUP BY STRFTIME('%H', order_datetime);

如果你打算使用 SQLite,你应该熟悉 SQLite 函数。

您可以使用具有正确语法和格式字符串的 SQLite 的 strftime() 函数:

SELECT strftime('%Y-%m-%d %H', order_datetime) hour,
       COUNT(*) ORDERPERHOUR
FROM vanorder
GROUP BY hour;

strftime('%Y-%m-%d %H', order_datetime) 对于像 '2021-07-28 15:32:12' 这样的时间戳将 return 2021-07-28 15 这就是你想要的。

如果您希望看到类似 '2021-07-28 15:00:00' 的值,则更改为:

strftime('%Y-%m-%d %H:00:00', order_datetime)