我需要使用以下语句获取MySQL Server Date:
SELECT DATE_ADD(NOW(),INTERVAL 1 HOUR) - This Works as expected.
但是现在我需要在数据库中的另一个表中使用句点(SECOND,HOUR,WEEK等),所以我尝试了以下内容。
SELECT DATE_ADD(NOW(),INTERVAL 1 duration_table.period) FROM (SELECT 'HOUR' period) as duration_table;
但它不起作用。那么,有没有办法将句点作为字符串提供给DATE_ADD函数?
P.S。我无法使用PHP生成此查询,我不想在其上使用CASE语句。
答案 0 :(得分:0)
您需要使用CASE
表达式。
SELECT DATE_ADD(NOW(), CASE duration_table.period
WHEN 'HOUR' THEN INTERVAL 1 HOUR
WHEN 'SECOND' THEN INTERVAL 1 SECOND
WHEN 'WEEK' THEN INTERVAL 1 WEEK
...
END)
FROM ...
如果你不想这样做,为什么不把持续时间表中的秒数而不是句点名称?
我能想到的唯一另一种选择是准备动态SQL。