Функція SQL @@DATEFIRST використовується для отримання першого дня тижня, який встановлюється ВСТАНОВИТИ ДАТУ ПЕРШОГО. SET DATEFIRST використовується для встановлення першого дня тижня. Параметр першого дня (n) встановлюється за допомогою одного з чисел від 1 до 7, де кожне число відображається на день тижня.
Щоб знайти перший день, дата й час спочатку перетворюються на дату лише за допомогою функції TO_DATE. Потім дата змінюється на перший день місяця за допомогою функції DATE_FROM_PARTS. Це працює шляхом введення 01' у частині «день» функції.
- DECLARE @STARTDATE DATETIME = '06/05/2016', @ENDDATE DATETIME = '07/02/2016';
- ВИБЕРІТЬ STARTDATE = DATEADD(DAY,n1,@STARTDATE), ENDDATE = DATEADD(DAY,n2,@STARTDATE) – 1,
- [ТИЖДЕНЬ] = р-н. FROM GetNumsAB(0, DATEDIFF(DAY,@STARTDATE,@ENDDATE), 7, 1);
Щоб побачити поточне налаштування SET DATEFIRST, використовувати функцію @@DATEFIRST. Параметр SET DATEFIRST встановлюється під час виконання або виконання, а не під час аналізу. Вказівка SET DATEFIRST не впливає на DATEDIFF. DATEDIFF завжди використовує неділю як перший день тижня, щоб забезпечити детермінованість функції.
ORDER BY — це пропозиція в SQL, яка використовується із запитом SELECT для отримання записів із таблиці в порядку зростання або спадання. Подібно до того, як ми сортуємо цілі числа та рядкові значення, що зберігаються в стовпці таблиці, ми можемо сортувати дати, що зберігаються в стовпці таблиці SQL.
Щоб отримати перший і останній день місяця в базі даних, використовувати функцію DATE_SUB. Він віднімає день місяця (за допомогою функції DAYOFMONTH) мінус 1 зі стовпця дати дня. Це дає нам перший день місяця. Функція LAST_DAY використовується для отримання останнього дня місяця для стовпця daydate.