SELECT CONVERT(varchar(10),DownTime,120) as DownTime, sum(DownSize) as DownSize,COUNT(id) AS UserCount FROM downshow group by DownTime order by id desc这句在SQL Server里是对的,但在MySQL里就报:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(10),DownTime,120) as DownTime, sum(DownSize) as DownSize,COUNT(id) AS Us' at line 1 应该怎么改才对?意思就是要把字段里面的日期时间字段的2010-07-22 09:40:08这种值转成纯日期的,然后按照日期汇总

解决方案 »

  1.   

    CONVERT(varchar(10),DownTime,120) as DownTime改成LEFT(DownTime, 10) AS DownTime可以么?
      

  2.   

    直接用 DownTime 即可(假定 DownTime 是日期或日期时间型)
    SQL Server 要用 CONVERT(varchar(10),DownTime,120) 的原因是他总是按所在地域输出本地语言的日期格式(在中国输出中就有中文)
      

  3.   

    SELECT DATE_FORMAT(`DownTime`,'%Y-%m-%d') as DownTime
      

  4.   

    SELECT DATE_FORMAT(DownTime, ''%Y-%m-%d) as DownTime, sum(DownSize) as DownSize,COUNT(id) AS UserCount FROM downshow group by DownTime order by id desc
      

  5.   

    建议:
    如果你想让你的代码适应各种数据库,那么就不要使用数据库提供的日期时间类型和函数。因为每个数据库对其都有各自的处理方式,不兼容。而是用长整型字段保存 unix时间戳,用程序处理