我有一个包含以下结构的表
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(32) | NO | | NULL | |
| time | int(19) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
time
被设置为UNIX_TIMESTAMP
。
如果我想计算具有特定名称的值的数量,并且在一天内有时间值,那么改变我的表格是否明智?应用程序使用DATETIME
类型,或者是否有一种简单的方法可以为当天选择不同的值,并且可以在多天内执行此操作&名。
我正在使用PDO
的{{1}}扩展名来查询数据库,我目前正在使用以下代码来创建查询。
PHP
我很乐意尝试澄清这篇文章中未被理解的任何内容。这对我来说似乎很清楚,但那可能只是因为我是那个写它的人。
答案 0 :(得分:0)
在我看来,我会使用datetime列数据类型。在进行像你这样的查询时,它们更容易处理。
顺便说一下,你的查询似乎是正确的,但是你需要输入一个代表UNIX_TIMESTAMP的int。
此致 哈维。
答案 1 :(得分:0)
使用GROUP BY,您可以计算每个名字的所有时间。试试这个
SELECT name, COUNT(*) as time1
FROM test
WHERE name = 'name'
AND time BETWEEN :time1First AND :time1Second
GROUP BY name
ORDER BY name;