获取当前月份生日列表表格员工表

时间:2014-01-08 17:04:31

标签: mysql

我有一张带有dob的员工表。每个月我都想要当前月份生日列表。 我想要查询当月员工生日列表。 dob文件的日期类似于'31 -01-1986'等等。请帮我搞定。

2 个答案:

答案 0 :(得分:2)

由于您的dob列包含'31-01-1986'之类的值,因此它必须是字符串数据类型而不是时间数据类型。这使得执行日期操作变得困难(并且很慢),例如您所希望的;你最好做一个纯粹的字符串操作:

SELECT *
FROM   employee
WHERE  CAST(SUBSTRING(dob, 4, 2) AS UNSIGNED) = MONTH(CURRENT_DATE)

我建议您将表转换为使用适当的时态数据类型,例如DATE

ALTER TABLE employee ADD COLUMN new_dob DATE AFTER dob;
UPDATE employee SET new_dob = STR_TO_DATE(dob, '%d-%m-%Y');
ALTER TABLE employee DROP COLUMN dob, CHANGE new_dob dob DATE;

(还要记住根据需要调整索引)。

请注意,您需要更新应用程序代码以使用DATE文字,包括之前的声明:

SELECT *
FROM   employee
WHERE  MONTH(dob) = MONTH(CURRENT_DATE)

答案 1 :(得分:-2)

使用此

WHERE month(dob) = month(now)