我正在做一个员工休假系统,如果员工的包含休假日期结束,我想输出。这是我的代码:
$count =0;
$sql = "SELECT * FROM application WHERE inclusive_dates='??'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
$count +=1;
$mi =$row['id_no'];
$mo=$row['fullname'];
$mu =$row['type_of_leave'];
$me =$row['inclusive_dates'];
我的 sql 条件是什么,让我知道保存在数据库中的日期已经过去了。例如,保存的日期是 1 月 18 日至 1 月 22 日,当前日期是 1 月 19 日。它将打印日期尚未过去的人的姓名。对不起我的英语
首先,从您的示例中不清楚inclusive_dates
包含什么。它是包含开始日期和结束日期的字符串吗?如果您分别存储开始日期和结束日期,可能会更好地工作。
假设数据库列使用 unix 时间戳,最简单的方法是检查time()
(当前 unix 时间戳)是否大于休假开始日期且小于休假结束日期。只要您将开始日期保存为午夜 00:00:01 之后,结束日期保存为午夜前一天结束时(例如 23:59:59),那么您应该不会有任何问题。
编辑:
$currentTime = time();
$sql = 'SELECT * FROM table
WHERE leave_start_time > $currentTime
AND leave_end_time < $currentTime';