餐厅周一上午 10 点至周二凌晨 03 点营业,周二上午 10 点至周三凌晨 03 点再次营业。
例如:
表:business_hour
id | weedDay | openDay | openTime | closeDay | closeTime
-----------------------------------------------------------
1 | Monday | Monday | 10:00:00 | Tuesday | 03:00:00
2 | Tuesday | Tuesday | 10:00:00 | Wednday | 03:00:00
如何使 MySQL SELECT 语句显示餐厅是否营业?
<?php
require_once "pdo/pdo.php";
try {
$stmt = $pdo->prepare("
SELECT
CASE WHEN
exists (
SELECT 1 FROM business_hour WHERE
(openday = dayname(now()) AND opentime <= time(now()))
OR
(closeday = dayname(now()) AND closetime >= time(now()))
)
THEN 'Open'
ELSE 'Closed'
END status
");
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo $row['status'];
}
} catch( PDOException $e ) {
echo $e.'Not selected'; // error message
}
?>
最佳答案
我猜您想知道餐厅现在是否营业:
select
case when
exists (
select 1 from business_hour where
(openday = dayname(now()) and opentime <= time(now()))
or
(closeday = dayname(now()) and closetime >= time(now()))
)
then 'Open'
else 'Closed'
end status;
请参阅demo
仅当表 business_hour
中存在有效的日期名称时,此功能才有效,
因此像 Wednday
而不是 Wednesday
这样的拼写错误会导致该错误失败。
关于php - MySQL-添加商店在休息后每天营业两次的营业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55199635/