Я преобразовал следующий запрос MS-SQL Server в MySQL, и я застрял в этой части даты. Может кто-нибудь, пожалуйста, скажите мне, что я здесь делаю неправильно?Преобразование из запроса MS-SQL Server в MySQL и DATEDIFF()
Оригинал MS-SQL Query (рабочий)
select top 4
[Mon]=sum(case when datename(weekday, vrdate) = 'Monday' then namount else 0 end),
[Tue]=sum(case when datename(weekday, vrdate) = 'Tuesday' then namount else 0 end),
[Wed]=sum(case when datename(weekday, vrdate) = 'Wednesday' then namount else 0 end),
[Thu]=sum(case when datename(weekday, vrdate) = 'Thursday' then namount else 0 end),
[Fri]=sum(case when datename(weekday, vrdate) = 'Friday' then namount else 0 end),
[Sat]=sum(case when datename(weekday, vrdate) = 'Saturday' then namount else 0 end),
[Sun]=sum(case when datename(weekday, vrdate) = 'Sunday' then namount else 0 end)
from stockmain
where etype = 'sale' and DATEDIFF(MONTH, vrdate, getDate()) = 0
group by datepart(week, vrdate)
order by datepart(week, vrdate) ;
Соответствующие MySQL Query (не работает)
Ниже соответствующий MySQL Query и я застрял на DATEDIFF
в WHERE
пункте ,
select
sum(case when date_format(vrdate, '%W') = 'Monday' then namount else 0 end) as 'Mon',
sum(case when date_format(vrdate, '%W') = 'Tuesday' then namount else 0 end) as 'Tue',
sum(case when date_format(vrdate, '%W') = 'Wednesday' then namount else 0 end) as 'Wed',
sum(case when date_format(vrdate, '%W') = 'Thursday' then namount else 0 end) as 'Thu',
sum(case when date_format(vrdate, '%W') = 'Friday' then namount else 0 end) as 'Fri',
sum(case when date_format(vrdate, '%W') = 'Saturday' then namount else 0 end) as 'Sat',
sum(case when date_format(vrdate, '%W') = 'Sunday' then namount else 0 end) as 'Sun'
from stockmain
where etype = 'sale' and DATEDIFF(MONTH, vrdate, CURDATE()) = 0
group by WEEK(VRDATE)
order by WEEK(VRDATE) desc
LIMIT 4
+1. Спасибо за эквивалент :-) –
Я просто размышлял, действительно ли это эквивалентно - я думаю, что это не так, но у меня нет программного обеспечения под рукой сейчас, чтобы проверить. Однако timestampdiff должен работать нормально. –
Оба дали тот же результат. Я пойду со вторым. –