使用日期时间类型的字段计算当前日期的结果

Count results for the current date using fields of type datetime

我正在尝试计算当天的条目数并对总数求和。目前,我有一个计算每天条目的查询。我正在使用 datetime 字段来实现我的最终目标。计算当天的条目并求和总数的最佳方法是什么?

CREATE TABLE product_entry
    (`id` int, `entry_time` datetime, `product` varchar(55))
;

INSERT INTO product_entry
    (`id`, `entry_time`, `product`)
VALUES
    (1, '2015-09-03 15:16:52', 'dud1'),
    (2, '2015-09-03 15:25:00', 'dud2'),
    (3, '2015-09-04 16:00:12', 'dud3'),
    (4, '2015-09-04 17:23:29', 'dud4')
;

SQLFIDDLE

查询

SELECT entry_time, count(*)
FROM product_entry
GROUP BY hour( entry_time ) , day( entry_time )

架构

CREATE TABLE product_entry
    (`id` int, `entry_time` datetime, `product` varchar(55))
;

INSERT INTO product_entry
    (`id`, `entry_time`, `product`)
VALUES
    (1, '2015-09-03 15:16:52', 'dud1'),
    (2, '2015-09-03 15:25:00', 'dud2'),
    (3, '2015-09-04 16:00:12', 'dud3'),
    (4, '2015-09-04 17:23:29', 'dud4')
;

你的问题的标题是 计算 当前日期的结果 ...,但你尝试过的查询表明你想要显示每个不同日期的结果计数。我不确定你需要哪一个。如果是前者,您可以简单地使用:

SELECT COUNT(`id`) FROM `product_entry` WHERE DATE(`entry_time`) =  CURDATE()

获取今天的计数:

SELECT COUNT(`id`) FROM `product_entry` WHERE DATE(`entry_time`) =  CURRENT_DATE


获取昨天的计数(当您想在一天结束时获取条目时需要):

SELECT COUNT(`id`) FROM `product_entry` WHERE DATE(`entry_time`) =  SUBDATE(CURRENT_DATE, 1)


对于按日期分组并格式化的所有时间:

SELECT DATE_FORMAT(entry_time,'%Y-%m-%d'), count(*)
FROM product_entry
GROUP BY date(entry_time)

这是 MSSQL 代码,也许对你有帮助

SELECT day([product_entry].[entry_time])as input, count(*) as Miktar
FROM [product_entry]
GROUP BY day([entry_time])