您好我正在使用Mysql Database.i有一个表Employee。
员工表说明如下。

Emp_id int(10),emp_name varchar(255),dob varchar(120)


我将员工资料存放在

dd-MMM-yyyy formate (21-May-1990)


现在,我希望所有员工的工作日介于1990年5月1日至1990年5月31日之间。

请让我知道如何在两个varchar日期之间获取数据

我已经编辑了我的问题。我的约会对象是“ dd-MMM-yyyy”。

谢谢。

最佳答案

由于这些值存储为字符串,因此需要对其进行转换。 MySQL具有一个称为STR_TO_DATE的内置函数。

SELECT Emp_id, emp_name
FROM TableName
WHERE STR_TO_DATE(dob,'%d-%M-%Y') >= '1990-05-01'
       AND STR_TO_DATE(dob,'%d-%M-%Y') <= '1990-05-31'


但是,在列上使用function不会使用任何索引,并且会降低性能,尤其是在大型表上。一个好的解决方案是使用正确的数据类型Date并在其上创建索引。

10-08 16:13