基于当前时间的MYSQL简单IF语句
我想运行SQL语句来返回产品的价格,但如果当前时间在开始/结束日期内,则返回促销价格基于当前时间的MYSQL简单IF语句,mysql,if-statement,conditional-statements,Mysql,If Statement,Conditional Statements,我想运行SQL语句来返回产品的价格,但如果当前时间在开始/结束日期内,则返回促销价格 | id | price | promo_price | promo_start | promo_end | +-----+---------+---------------+-------------+------------+ | 1 | 5 | 4 | 1375709473 | 1375709473 | SQL仅返回产品价格,不考虑促销: SELEC
| id | price | promo_price | promo_start | promo_end |
+-----+---------+---------------+-------------+------------+
| 1 | 5 | 4 | 1375709473 | 1375709473 |
SQL仅返回产品价格,不考虑促销:
SELECT p.`price`
FROM products p
WHERE p.`id` = 1
如何将其创建为SQL-IF语句
非常感谢。选择IF(p.`promo\u start`=unix\u timestamp(),p.`promo\u price`,p.`price`)作为价格
SELECT IF(p.`promo_start` <= unix_timestamp() AND p.`promo_end` >= unix_timestamp(), p.`promo_price`,p.`price`) as price
FROM products p
WHERE p.`id` = 1
来自产品p
其中p.`id`=1
使用上面的查询
或者您可以使用以下用例:
SELECT
CASE WHEN p.`promo_start` <= unix_timestamp() AND p.`promo_end` >= unix_timestamp()
THEN p.`promo_price`
ELSE p.`price` END
FROM products p
WHERE p.`id` = 1;
选择
p.`promo\u start`=unix\u timestamp()时的情况
然后p.‘促销价格’
ELSE p.`price`结束
来自产品p
其中p.`id`=1;
在这里。选择IF(p.`promo\u start`=unix\u timestamp(),p.`promo\u price`,p.`price`)作为价格
来自产品p
其中p.`id`=1
使用上面的查询
或者您可以使用以下用例:
SELECT
CASE WHEN p.`promo_start` <= unix_timestamp() AND p.`promo_end` >= unix_timestamp()
THEN p.`promo_price`
ELSE p.`price` END
FROM products p
WHERE p.`id` = 1;
选择
p.`promo\u start`=unix\u timestamp()时的情况
然后p.‘促销价格’
ELSE p.`price`结束
来自产品p
其中p.`id`=1;
在这里。很好,现在我理解了语法,但是使用BETWEEN(@vatev solution)似乎更符合逻辑。非常感谢这两者。@BigDistance我还将添加教程链接。你可以从那里学到更多。@BigDistance如果你觉得这个答案是好的,那么别忘了把它标记为已接受。非常感谢。很好,现在我理解了语法,但是使用BETWEEN(@vatev solution)似乎更符合逻辑。非常感谢这两者。@BigDistance我还将添加教程链接。你可以从那里学到更多。@BigDistance如果你觉得这个答案是好的,那么别忘了把它标记为已接受。非常感谢。