繁体   English   中英

如何从MySQL datetime中减去日期,其中table被指定为MySQL函数。

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM