我的数据库中有两列名为 dtp_s
以及 dtp_e
. 这两列都适用 strtotime()
格式化的int,然后我在php应用程序中使用它来计算时间间隔之间的小时/分钟。
我想按日期顺序显示5条最新记录,使用此命令时效果良好:
SELECT id
FROM _records
ORDER BY dtp_s DESC
LIMIT 5
但是,我现在要转换 dtp_s
在我的查询中返回到datetime格式,只提取该周的数据。我有一个问题是记录每周配额,我的想法是抽出5个记录涵盖周一至周五(这是所有需要和上传),但下周一将显示前几周周二,周三,周四和周五以及。
我试着用 date_sub
间隔一周,但这似乎只适用于datetime数据类型列,而不是unix时间戳:
SELECT id
FROM _records
WHERE dtp_s > DATE_SUB(NOW(), INTERVAL 1 WEEK);
ORDER BY dtp_s DESC
LIMIT 5
如何通过将格式化的datetime转换回datetime格式来只选择当前周的数据?我很感激你的帮助。
我的一个例子 dtp_s
以及 dtp_e
是:
1595570400 1595584800
2条答案
按热度按时间62lalag41#
可以使用date函数将筛选器值转换为unix时间戳
unixtimestamp()
,就像这样:vzgqcmou2#
实际上,你可以直接使用
unix_timestamp()
无转换:尽管
unix_timestamp()
可能非常有用,unix_timestamp(now())
实际上是多余的。您可以在unix时间戳域中完成整个计算。