datetime

Ответить
Kogep
Сообщения: 13
Зарегистрирован: 20 июн 2013, 12:32

datetime

Сообщение 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
Ответить