Php 如何在当前MySQL查询中添加日期范围查询?
我有一个问题,如何在MySQL查询中添加日期范围的查询。仅生成日期 我的问题是:Php 如何在当前MySQL查询中添加日期范围查询?,php,mysql,Php,Mysql,我有一个问题,如何在MySQL查询中添加日期范围的查询。仅生成日期 我的问题是: SELECT TS.id AS TSid, employeeid, `date` AS date_d, TS.TI1 AS TI1, TS.TO1 AS TO1, CONCAT(E.lastName,', ',E.firstName,' ',E.middleInitial,'.') AS 'fullname',
SELECT TS.id AS TSid, employeeid, `date` AS date_d, TS.TI1 AS TI1, TS.TO1 AS TO1,
CONCAT(E.lastName,', ',E.firstName,' ',E.middleInitial,'.') AS 'fullname',
(TIME_TO_SEC(CAST(TS.`TI1` AS time))/3600) AS 'timeinint',
(TIME_TO_SEC(CAST(TS.`TO1` AS time))/3600) AS 'timeoutint',
E.startDate, C.companyName, B.branchName,
R.mon, R.tue, R.wed, R.thu, R.fri, R.sat, R.sun
FROM timeschedule AS TS
LEFT JOIN employee AS E ON TS.employeeid = E.id
LEFT JOIN company AS C ON E.companyid = C.id
LEFT JOIN branch AS B ON E.branchid = B.id
LEFT JOIN restday AS R ON R.id = E.restDayid
WHERE TS.`show` = '1'
ORDER BY employeeid ASC
以下是我获取输入的方式:
$mfrom = $this->input->get('mfroma'); //From: Month
$yfrom = $this->input->get('yfroma'); //From: Year
$yto = $this->input->get('ytoa'); //To : Year
通过指定的字段(从月份、年份到年份),可以将这些条件添加到
WHERE
子句中。在本例中,我将使用E.startDate
字段:
$sql = "-- your query here...
WHERE
TS.`show` = '1'
AND MONTH(E.startDate) >= " . $mfrom . "
AND YEAR(E.startDate) BETWEEN " . $yfrom . " AND " . $yto . "
ORDER BY employeeid ASC";
文档:
-
-
注意:PHP解析双引号内的变量,但我个人更喜欢将PHP变量保留在双引号外。在WHERE中。其中TS.show=1,日期介于一个日期和另一个日期之间。要显示的日期范围是什么?月份和年份是唯一的日期筛选器吗?我会想,相当宽泛的术语…@scrowler:是的,只有月份和年份过滤器