您好我正在使用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
并在其上创建索引。