«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как посчитать количество вторников между двумя датами в TSQL?

Как посчитать количество вторников между двумя датами в TSQL?

Опубликовано 11 декабря 2024 г.
Просматривать:826

How to Calculate the Number of Tuesdays Between Two Dates in TSQL?

Вычисление количества вторников между двумя датами в TSQL

Определение количества вторников между двумя датами является распространенной проблемой в программировании TSQL. Один из эффективных подходов описан в t-clausen.dk:

Для расчета экземпляров каждого дня недели:

declare @from datetime = '3/1/2013' 
declare @to datetime  = '3/31/2013' 


select 
 datediff(day, -7, @to)/7-datediff(day, -6, @from)/7 AS MON,
 datediff(day, -6, @to)/7-datediff(day, -5, @from)/7 AS TUE,
 datediff(day, -5, @to)/7-datediff(day, -4, @from)/7 AS WED,
 datediff(day, -4, @to)/7-datediff(day, -3, @from)/7 AS THU,
 datediff(day, -3, @to)/7-datediff(day, -2, @from)/7 AS FRI,
 datediff(day, -2, @to)/7-datediff(day, -1, @from)/7 AS SAT,
 datediff(day, -1, @to)/7-datediff(day, 0, @from)/7 AS SUN

Этот запрос возвращает количество вхождений каждого дня недели в указанном диапазоне дат. . Вычисления основаны на следующих принципах:

  • Функция dateiff вычисляет разницу между двумя датами в днях.
  • Выражение -7 представляет воскресенье перед датой начала.
  • Выражение -6 представляет понедельник перед датой начала.
  • Деление на 7 группирует дни по неделе.
  • Вычитание количества дней от даты начала до понедельника перед датой начала вычисляет количество недель между датами начала и окончания.
  • Вычитание количества дней от даты окончания до дня недели до даты окончания рассчитывает количество дней, оставшихся до последней недели.

Применяя этот метод, вы можете легко определить количество вторников или любого другого дня недели в пределах заданного дата диапазон.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3