如何从 MySQL 日期时间中减去日期,其中 table 被指定为 MySQL 函数。
How to subtract date from MySQL datetime where table is specified as a MySQL function.
我正在使用以下 'DATE(time)' 从 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)" 的完整代码。
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 转换为日期,请使用 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
我正在使用以下 'DATE(time)' 从 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)" 的完整代码。
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 转换为日期,请使用 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