【发布时间】:2018-05-16 14:44:04
【问题描述】:
我正在研究 SQL(使用 MariaDB 10.2)并且我正在使用我在网上找到的一个巨大的示例数据库。它有一个“员工”表,这个表有一个“日期”类型的“出生日期”列。例如,我想选择所有 50 岁以上的员工,或者可能在特定日期将 25 岁的员工。有没有办法做这样的事情?
【问题讨论】:
标签: mysql sql date select mariadb
我正在研究 SQL(使用 MariaDB 10.2)并且我正在使用我在网上找到的一个巨大的示例数据库。它有一个“员工”表,这个表有一个“日期”类型的“出生日期”列。例如,我想选择所有 50 岁以上的员工,或者可能在特定日期将 25 岁的员工。有没有办法做这样的事情?
【问题讨论】:
标签: mysql sql date select mariadb
您可以在dates 中加上或减去intervals:
SELECT *
FROM employee
WHERE birth_date <= NOW() - INTERVAL 50 YEAR
【讨论】:
假设 t-sql,那么对于今天 50 岁以上的人,使用:
select * from employees where datediff(year, birth_date, now()) > 50
对于那些在某个日期将年满 25 岁的人使用:
select * from employees where datediff(year, birthdate, certain_date) = 25
【讨论】:
DATEDIFF 在 mysql/mariadb 中只有 2 个参数:mariadb.com/kb/en/library/datediff。我猜你的查询在 T-SQL 中运行良好 :)
使用这个
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
这是用于 MySql 数据库的
【讨论】:
您可以使用可以添加或减去日期的 INTERVAL 函数:
SELECT * FROM employee WHERE birth_date <= (NOW() - INTERVAL 50 YEAR);
【讨论】: