gpt4 book ai didi

mysql - TIMESTAMPDIFF,新列上的多行结果

转载 作者:行者123 更新时间:2023-11-29 12:36:31 27 4
gpt4 key购买 nike

我有一个学生数据库,其中有注册日期列。我需要在 sql 上运行一个查询,查找该日期和今天的日期,并显示 yy 年 mm 月的差异。

我正在使用 TIMESTAMPDIFF 来计算这些日期之间的差异,但只能产生一个值,我如何调整它以计算出整行?我需要用这些数据创建一个新列。

这是查询:

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), (SELECT time_enrolled FROM student) )
AS newDate

如果我在末尾添加“where”语句,我会得到指定的 id,例如:

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), (SELECT time_enrolled FROM student WHERE f_id = 4) )
AS newDate

最佳答案

不要使用子查询。您的原始查询应该是:

SELECT TIMESTAMPDIFF(MONTH, CURDATE(), time_enrolled) AS newDate
FROM student;

如果子查询在标量上下文中返回多行,例如在 select 语句中返回一个值,则会生成错误。

如果您愿意,您可以为此查询添加适当的 where 子句。

编辑:

要获取年和月,请使用模运算:

SELECT floor(TIMESTAMPDIFF(MONTH, CURDATE(), time_enrolled) / 12) as years,
mod(TIMESTAMPDIFF(MONTH, CURDATE(), time_enrolled), 12) as months
FROM student;

关于mysql - TIMESTAMPDIFF,新列上的多行结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26701708/

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