【发布时间】:2018-06-05 02:34:23
【问题描述】:
我正在使用 PHP 访问 MySQL 数据库。我有一个这样的表:
表头:
- id(INT,自动增量),profileid,时间戳
表格内容:
- 1、12345678、1513814399(= 2017 年 12 月 21 日)
- 2、13451983、1513814400(= 2017 年 12 月 21 日)
- 3、12345678、1513944000(= 2017 年 12 月 22 日)
- 4、12345678、1513944001(= 2017 年 12 月 22 日)
该表显示了网站访问者在何时调用了哪些 profileid。
所以我现在的问题是,如何显示例如: “给我 2017 年 12 月 22 日调用的配置文件号 12345678 的条目数”,在这种情况下为“2”。
我用这个查询试了一下:
SELECT COUNT(profileid), from_unixtime(timestamp, '%d') AS day, from_unixtime(timestamp, '%m') as month, from_unixtime(timestamp, '%Y') as year WHERE profileid='12345678' AND day=22 AND month=12 AND year=2017;
但无法访问“日”、“月”和“年”列,因为它们不存在于表中。
谁能给我一个提示如何做到这一点?另一种方法是创建三个新列(timestamp_day、timestamp_month 和 timestamp_year),但这不是一个好的解决方案。
提前谢谢你!
哈哈
【问题讨论】:
-
“时间戳”字段有什么数据类型?为什么不直接将其设置为“日期”?似乎没有必要将其存储为需要转换才能使用的格式。
-
MySQL 有日期函数,如
DAY()、MONTH()和YEAR(), etc. which you can apply to your date-field. See:dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html -
感谢您的 cmets。它具有整数类型。这样做是因为老实说我已经习惯了,而且计算时差很好。
标签: php mysql database date timestamp