Php 如何从MySQL datetime中减去日期,其中表被指定为MySQL函数。
我使用以下“日期(时间)”从datetime获取日期,并且工作时没有错误Php 如何从MySQL datetime中减去日期,其中表被指定为MySQL函数。,php,mysql,sql,datetime,Php,Mysql,Sql,Datetime,我使用以下“日期(时间)”从datetime获取日期,并且工作时没有错误 SELECT * FROM $t WHERE owner = '$sn' && DATE(time) = '$d'; 但是,当表是联合的时,我尝试使用“p.DATE(time)”并得到这个错误 FUNCTION p.DATE does not exist. Check the 'Function Name Parsing and Resolution' 下面是我使用“p.DATE(time)”的完整代码
SELECT * FROM $t WHERE owner = '$sn' && DATE(time) = '$d';
但是,当表是联合的时,我尝试使用“p.DATE(time)”并得到这个错误
FUNCTION p.DATE does not exist. Check the 'Function Name Parsing and Resolution'
下面是我使用“p.DATE(time)”的完整代码
如何编写此“p.DATE(time)”?您正在为函数分配别名。只要写在列名上就行了
function get_m_stats($con,$sn,$d=NULL,$t=NULL,$o=NULL){
$get_day = mysqli_query($con, "
SELECT m.* , COUNT(p.sid) frequency FROM music m
JOIN $t p
ON p.sid = m.sid
WHERE p.sid != '' AND p.owner = '$sn' AND DATE(p.time) = '$d'
AND m.perms = 'a'
GROUP BY m.sid
ORDER BY frequency $o
LIMIT 1") or die(mysqli_error($con));
$row_day = mysqli_fetch_array($get_day);
echo $row_day['title'];
}
我确信DATE()
是一个MySql函数-因此它不能存在于表格引用变量p
中
因此,获取数据的正确方法是获取p.time
,如果要将dateTime转换为date,请使用MySql函数date
因此,您的查询应该是:
SELECT m.* , COUNT(p.sid)as frequency
FROM music m JOIN $t p
ON p.sid = m.sid
WHERE p.sid != ''
AND p.owner = '$sn'
AND DATE(p.time) = '$d'
AND m.perms = 'a'
GROUP BY m.sid
ORDER BY frequency $o
LIMIT 1
这将是您的
日期(p.time)
旁注:这样使用日期将防止数据库使用索引。如果以范围()进行查询,则应该能够。
SELECT m.* , COUNT(p.sid)as frequency
FROM music m JOIN $t p
ON p.sid = m.sid
WHERE p.sid != ''
AND p.owner = '$sn'
AND DATE(p.time) = '$d'
AND m.perms = 'a'
GROUP BY m.sid
ORDER BY frequency $o
LIMIT 1