mysql - 插入新表时计算年龄

标签 mysql sql

我有一个销售人员表,我正在尝试根据该数据创建第二个表以建立高级销售团队。在第一个表中,我们存储了他们的生日,但我只想将他们当前的年龄存储在新表中。

这是我的销售人员架构

CREATE TABLE Salesperson
(
SalespersonId BIGINT,
Name VARCHAR(50),
BirthDate DATE,
Salary INT
);

我想做的就是将他们的姓名和年龄添加到新表中

INSERT INTO SeniorSales (Name, Age)
SELECT Name, FLOOR(DATEDIFF(DAY, @BirthDate, @TargetDate) / 365.25) 
FROM Salesperson 
WHERE Salary > 100,000;

我收到一个错误,说我“调用 native 函数‘DATEDIFF’时参数计数不正确”我承认我对 mySQL 比较陌生,并且我从谷歌搜索中删除了年龄计算函数。

最佳答案

DATEDIFF 语法仅使用两个日期 DATEDIFF(date1,date2)

根据您的情况,您应该使用

 INSERT INTO SeniorSales (Name, Age)
 SELECT Name, FLOOR(DATEDIFF(@TargetDate, @BirthDate) / 365.25) 
 FROM Salesperson 
 WHERE Salary > 100,000;

关于mysql - 插入新表时计算年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632329/

相关文章:

sql - 用于显示用户组的 postgresql 查询

php - SQL - 两个 worker 一次过滤

sql - 按递增顺序选择 SQL

mysql - Admin多属性MYSQL如何高效连接

sql - 如何根据用户在 SQL 中输入的内容将日期时间拆分为周/月

php - 使用几个选项过滤 php mysql

php - 计算搜索查询返回的行数

mysql - 如何在 linux 16.04 (LTS) 中下载 MySQL-Proxy

mysql - IF Else 在存储过程中不起作用

mysql - MySQL中如何设置夏令时?