php - 使用 PHP 和 MySQL 验证之间的日期

标签 php mysql validation date between

我有一个表,其中包含以下字段:staff_idleave_applied_fromleave_applied_to

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

所以要求是,如果staff_id 1尝试输入日期2012-06-21它不应该允许输入它,如果staff_id 2 尝试输入日期 2012-06-22 它不应允许工作人员输入。

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

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

最佳答案

请尝试以下操作:

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

如果查询返回记录,则说明date中的key在范围内,可能会提示错误。

关于php - 使用 PHP 和 MySQL 验证之间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184067/

相关文章:

php - ER图的映射特化,插入子表时重复

php - 为什么我的两个 Laravel 站点的 session 发生冲突?

java - JPA同步问题,需要重新启动应用程序

php - Codeigniter 分页从不同页面和不同员工的不同事件链接开始,而代码相同

asp.net-mvc - .net MVC 国际日期 从发布的表单进行模型验证

javascript - Laravel获取图像的文件内容但在生产环境上不起作用

javascript - Sequelize MySQL更新值从其他表复制

jquery - jquery 引导验证日期 DD.MM.YYYY

angularjs - 如何向客户端呈现错误? AngularJS/Web Api 模型状态

php - 从 BLOB 获取部分数据作为十六进制