Страница 1 из 1

datetime

Добавлено: 13 апр 2022, 13:52
Kogep
1. Начало дня

Самый быстрый способ начиная с 2008:

Код: Выделить всё

SELECT CONVERT(date, GETDATE())
Для более ранних версий:

Код: Выделить всё

SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
2. Начало месяца

Код: Выделить всё

SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)

SELECT DATEFROMPARTS(YEAR(@now), MONTH(@now), 1)
3. Пересечение диапазона дат
Даны два диапазона:
1) dtb1 ... dte1
2) dtb2 ... dte2

Условие пересечения:
dtb1 <= dte2 and dte1 >= dtb2

Условие не пересечения:
dtb1 > dte2 or dte1 < dtb2