gpt4 book ai didi

mysql - 多个订单(日期和时间)在 MYSQL 中不起作用

转载 作者:行者123 更新时间:2023-11-29 06:38:33 26 4
gpt4 key购买 nike

我正在组合多个表,过滤然后按某种格式排序。每次我尝试按日期和时间排序时,都会弄乱输出。

SELECT
t1.empid,t2.lastName,t2.firstName
,t1.date as "OVERBOOKED DATE",t1.sfrom,t1.dept as "dname"
,t3.manager as "MANAGER"
from schedule_2 as t1
INNER JOIN employees_2 as t2 ON t1.empid = t2.empid
INNER JOIN dept_heads as t3 ON t1.dept = t3.Dept_name
JOIN ( SELECT empid,date from schedule_2
GROUP BY empid,date
having count(empid)>1
) inr on inr.empid=t1.empid and inr.date=t1.date
ORDER BY empid ASC, "OVERBOOKED DATE" ASC, sfrom ASC;

我附上了输出的片段和预期输出的片段。我对此很陌生,所以非常感谢任何帮助!

[Current Output

[Expected Output

最佳答案

您的问题是 sfrom 列中的值不是 DATE 函数的有效输入(因为您在“当前输出”查询中使用它)。您需要使用STR_TO_DATE将它们转换为有效的排序值,即将 ORDER BY 子句中的 sfrom (或 DATE(sfrom))替换为

ORDER BY empid ASC, "OVERBOOKED DATE"  ASC, STR_TO_DATE(sfrom, '%h%p') ASC

编辑

正如 @TimBiegeleisen 所指出的,"OVERBOOKED DATE" 只是一个字符串文字,对于排序无效,无论是原始列名称 (t1.date),应使用常规名称别名(OVERBOOKED_DATE)或反引号中的别名,例如

ORDER BY empid ASC, `OVERBOOKED DATE`  ASC, STR_TO_DATE(sfrom, '%h%p') ASC

关于mysql - 多个订单(日期和时间)在 MYSQL 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712971/

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