Я хотел бы спросить о том, как получить дату на будний деньКак получить даты в будний день?
green is weekday
red is sunday
так, когда я ввода SQL приказываю (например, 27), когда год 2012 он покажет дата 2012-07-2 до 2012-07-08
Я хотел бы спросить о том, как получить дату на будний деньКак получить даты в будний день?
green is weekday
red is sunday
так, когда я ввода SQL приказываю (например, 27), когда год 2012 он покажет дата 2012-07-2 до 2012-07-08
В этом запросе используется один параметр @weekno
, как в ставит и возвращает 7 дней на этой неделе, принимая понедельник в качестве первого дня недели. Определение WeekNo не следует за SQL Server DatePart(Week)
, потому что это зависит от @@ Datefirst. Это не так.
Линия dateadd..
- это выражение, которое возвращает первый понедельник года. Я получил его от here. Строка над ним просто добавляет недели к ней и 0-6 для создания 7 дней. Чтобы убедиться, что это верно для любого года, измените CURRENT_TIMESTAMP
в запросе на дату, например 20180708
. FYI, 1 января-2018 - понедельник.
declare @weekno int = 27;
select
(@weekno-1)*7+v.num+
dateadd(dd,(datediff(dd,0,dateadd(yy,datediff(yy,0,CURRENT_TIMESTAMP),6))/7)*7,0)
from (values(0),(1),(2),(3),(4),(5),(6))v(num)
order by num
-- results
July, 02 2012 00:00:00+0000
July, 03 2012 00:00:00+0000
July, 04 2012 00:00:00+0000
July, 05 2012 00:00:00+0000
July, 06 2012 00:00:00+0000
July, 07 2012 00:00:00+0000
July, 08 2012 00:00:00+0000
Да, если вы не возражаете, я могу спросить, где я должен поставить @weekno. Спасибо –
Второе, что в запросе нет '@ weekno'. –
@Andriy Я не должен набирать голодных и ошибаться :) – RichardTheKiwi
Да. Для базы данных. Я хочу рассчитать производственный день каждую неделю –
'Для базы данных'. MySQL? – RichardTheKiwi
Да, я должен ввести диапазон недели в базу данных. SQl-сервер действителен. Спасибо –