gpt4 book ai didi

mysql - 使用 mysql dayname 作为列名

转载 作者:行者123 更新时间:2023-11-30 01:23:39 25 4
gpt4 key购买 nike

是否可以使用日期名称输出作为列名称

目前我正在使用这个

SELECT *,
LEFT(thu,5) as open1
FROM ...
WHERE ...

但我想用动态当前日期(3 个字母)替换 thu 字符串,并仍然使用它作为列名称。

最佳答案

简短的回答是否定的,这是不可能的。 SQL 语句中的列引用(与所有标识符一样)是静态的。标识符不能替换为运行时确定的表达式。

<小时/>

更长的答案是,您要么需要动态生成语句,要么根据任何条件选择一组可能的语句中的一个来执行。

第三种方法可能会满足您的需求,即引用您想要从中选择的所有可能的列名称,并根据星期几从该列返回条件。

类似的事情可以达到相同的结果:

SELECT LEFT(CASE DAYNAME(NOW())
WHEN 'Sunday' THEN t.sun
WHEN 'Monday' THEN t.mon
WHEN 'Tuesday' THEN t.tue
WHEN 'Wednesday' THEN t.wed
WHEN 'Thursday' THEN t.thu
WHEN 'Friday' THEN t.fri
WHEN 'Saturday' THEN t.sat
END,5) AS open1
FROM t

(为了避免根据语言/区域对星期几名称进行不同设置的问题,我更愿意使用 DAYOFWEEK 函数。而且我更有可能重复LEFT 函数,即使重复,看起来也更容易阅读:

SELECT CASE DAYOFWEEK(NOW())
WHEN 1 THEN LEFT(t.sun,5)
WHEN 2 THEN LEFT(t.mon,5)
WHEN 3 THEN LEFT(t.tue,5)
WHEN 4 THEN LEFT(t.wed,5)
WHEN 5 THEN LEFT(t.thu,5)
WHEN 6 THEN LEFT(t.fri,5)
WHEN 7 THEN LEFT(t.sat,5)
END AS open1
FROM t

关于mysql - 使用 mysql dayname 作为列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com