当前位置: 首页 > 知识库问答 >
问题:

TIMESTAMPDIFF,新列上的多行结果

孟茂
2023-03-14

我有一个学生数据库,其中有一个注册日期栏。我需要在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

共有1个答案

闽朝
2023-03-14

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

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;
 类似资料:
  • 问题内容: 我有一张桌子,就是PK。当我插入行时,将有重复的键,并且我需要总结三个统计信息。我在Java中对PreparedStatement使用以下查询: 是否有更简洁的查询来实现?因为我简化了查询,所以那里有十多个统计信息。 问题答案:

  • 我用的是spark 2.1,脚本是pyspark。请帮我一下,因为我被困在这里了。 问题陈述:根据多列的条件创建新列 输入<code>数据帧<code>如下 现在我需要创建一个新列作为FLG,我的条件是如果

  • 问题内容: 我正在尝试为实体框架创建一个查询,该查询将允许我获取ID列表并更新与它们关联的字段。 SQL中的示例: 如何将以上内容转换为实体框架? 问题答案: 像下面这样 更新: 您可以如下更新多个字段

  • 问题内容: 如何习惯地在多个DataFrame列上运行类似的函数,该函数期望一个列并返回多个列? 问题答案: 使用 pandas 0.19 ,您可以在一行中完成此操作: 指定在哪里进行一次热编码。

  • 初始数据流: 产生的数据frame: 我通常通过使用以下内容将新列“追加”到dataframe:

  • 我想将我的自定义函数(它使用if-else梯形)应用到数据帧每行中的这六列(,,,,,)。 我已经尝试了不同的方法从其他问题,但似乎仍然不能找到正确的答案,我的问题。关键的一点是,如果这个人被算作西班牙裔,他们就不能算作其他任何东西。即使他们在另一个种族栏中有一个“1”,他们仍然被算作西班牙裔,而不是两个或两个以上的种族。类似地,如果所有ERI列的总和大于1,则被计为两个或两个以上的种族,不能被计