php - 在 SQL 查询中计算时间

标签 php mysql sql date time

我运营着一个营业时间网站,我们会在该网站上显示商店是否营业的数据。

到目前为止,如果它在 PHP 中打开或不打开,我会进行计算,但我想知道是否可以直接在查询中进行计算。这会大大加快速度,因为我不必获取所有行(超过 10.000 行)只显示打开的行,但可以直接限制查询。

格式为:

HH:MM-HH:MM
08:00-16:00

表字段:

mon, tue, wed, thu, fri, sat, sun

所以查询需要知道是哪一天,拆分字段计算是否在当前时间。

目前在 PHP 中,我只是将它们用“:”和“-”分开,然后从那里开始计算。

最佳答案

那是一个糟糕的表结构。您应该将打开/关闭时间存储在单独的字段中作为适当的时间值。例如

create table storehours (
   id int auto_increment primary key,
   storeID int,
   open time,
   closed time
);

然后你可以做一个非常简单的:

SELECT storeID
WHERE curtime() BETWEEN open AND closed

关于php - 在 SQL 查询中计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660281/

相关文章:

php - 从视频中获取缩略图图像不适用于 PHP 和 ffmpeg (Ubuntu)

php - 为什么不应该将 CONCAT() 用于静态字符串文字?

php - 在 Android 上注册并使用 PHP、MySQL 和 SQLite 保存在数据库中

php - LEFT JOIN 在 'on 子句中返回不唯一的表/别名和未知列

java - 我的代码有错误吗?

php - 如何在WordPress中使用更新和删除查询

Debian mono 中 monodevelop 中的 MySQL.Data.dll 错误

mysql - 如何使用sql select获取一组记录中一列的最大值结果?

sql - Tsql,有没有办法使用行中的现有字段作为同一行中另一个字段中字符串的一部分来更新行?

php - 仅返回 LEFT JOIN 的最新结果