0

我有一个包含以下字段的表:staff_id, leave_applied_from, leave_applied_to.

+----------+--------------+------------+
| staff_id | applied_from | applied_to |
+----------+--------------+------------+
|     1    | 2012-06-21   | 2012-06-21 |
|     2    | 2012-06-21   | 2012-06-23 |
+----------+--------------+------------+

所以要求是,如果staff_id1尝试输入2012-06-21它不应该允许输入的日期,如果staff_id2尝试输入2012-06-22它不应该允许员工输入的日期。

我知道如何在 PHP 端显示错误,但我不知道如何检查数据库中数据库中是否存在日期,我不知道如何在一个 MySQL 查询中检查两个字段。

查询应首先检查 staff_id,然后检查其他字段(applied_from、applied_to)。如果工作人员已经输入了相同的日期范围,它应该会出错。

4

2 回答 2

1

请尝试以下方法:

SELECT * from tbl where (applied_from =< @inputdate AND applied_to >= @inputdate) 
AND staff_id=@inputid

如果查询返回记录,则表示日期中的键在范围内,可能会提示错误。

于 2012-06-25T05:57:38.380 回答
0
select case when curdate() < applied_from or curdate() > applied_to
            then 1
            else 0
            end as is_staff_id_ok
from your_table
where staff_id = 1
于 2012-06-25T05:56:22.057 回答