[英]How to subtract date from MySQL datetime where table is specified as a MySQL function.
我正在使用以下“日期(时间)”从日期时间获取日期,并且没有任何错误。
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)”的完整代码。
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 p.DATE(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'];
}
我怎么写'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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.