mysql: найти все пятницы с датой в 2017 году

0

Мне нужен запрос MySQL, который будет получать все пятницы с датой 2017 года.

Я знаю, что SQL-запрос для него:

SELECT Fridays = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), n.num)
FROM (SELECT TOP 366 num = ROW_NUMBER() OVER(ORDER BY a.NAME)-1 FROM dbo.syscolumns a, dbo.syscolumns b) n
WHERE DATENAME(weekday, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), n.num)) = 'Friday'

Я ищу альтернативу MySQL для того же самого.

Благодарю.

  • 0
    У вас уже есть таблица, содержащая все даты в 2017 году? Кстати, код, который вы разместили, - это код SQL Server, а не MySQL.
  • 0
    Да, я знаю его sql, я ищу что-то подобное в MySQL.
Теги:
mysqli

3 ответа

0

Mysql не имеет функции row_number до версии 8. До версии 8 row_number можно моделировать с использованием переменных.

select s.num , date_add(str_to_date(concat('2016','/','12','/','31'),'%Y/%m/%d'), interval s.num day) dt,
            dayname(date_add(str_to_date(concat('2016','/','12','/','31'),'%Y/%m/%d'), interval s.num day)) dy
from
(
select @num:=@num + 1 num from information_schema.columns,(select @num:=0) n
limit 35
) s
where dayname(date_add(str_to_date(concat('2016','/','12','/','31'),'%Y/%m/%d'), interval s.num day)) = 'Friday';

information_schema.columns похожа на dbo.syscolumns.

------+------------+--------+
| num  | dt         | dy     |
+------+------------+--------+
|    6 | 2017-01-06 | Friday |
|   13 | 2017-01-13 | Friday |
|   20 | 2017-01-20 | Friday |
|   27 | 2017-01-27 | Friday |
|   34 | 2017-02-03 | Friday |
+------+------------+--------+
5 rows in set, 2 warnings (0.26 sec)
0
SELECT * FROM table WHERE ([date] BETWEEN date_start and date_end) AND 
DAYNAME([date])='Friday'

Источник запроса: получение данных за каждую пятницу между двумя датами

0

Это точное преобразование вашей логики sql в mysql

SELECT DATE_ADD(MAKEDATE(year(now()),1), INTERVAL @num:=@num+1 DAY)
From (select @num:=-1) num
where DAYNAME(DATE_ADD(MAKEDATE(year(now()),1), INTERVAL @num:=@num+1 DAY))="Friday"
limit 365 
  • 0
    возвращает мне пустой набор результатов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню