我需要将以下sql server查询转换为mysql
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, p_date)) [date],
SUM(p_amount) [sum]
FROM tbl_Payments
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, p_date)) BETWEEN '20130701' AND '20130731'
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, p_date))
列名:p_date,p_amount
答案 0 :(得分:0)
您的查询看起来正确,除了
之类的内容用反引号替换[]
"`"逃避
DATE和TIME函数语法在MySQL中与SQL Server不同。有关MySQL DATE和TIME函数的更多信息,请参阅Date and Time Functions
尝试使用1-1-1
之类的最短日期,而不是0
select DATEDIFF('1-1-1', now())
select DATE_ADD('1-1-1', interval DATEDIFF(now(), '1-1-1') day);
有了这一切,下面的查询在MySQL中应该可以正常工作
SELECT DATE_ADD('1-1-1', interval DATEDIFF(p_date, '1-1-1') day) `date`,
SUM(p_amount) `sum`
FROM tbl_Payments
WHERE DATE_ADD('1-1-1', interval DATEDIFF(p_date, '1-1-1') day)
BETWEEN '20130701' AND '20130731'
GROUP BY DATE_ADD('1-1-1', interval DATEDIFF(p_date, '1-1-1') day)