Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
Мы тут выдумали функцию, которая эту дату возвращает, но оня чуток тормозит весь запрос CREATE FUNCTION dbo.F_LASTDAYOFMONTH (@DATE D_DATE) RETURNS D_DATE AS BEGIN declare @Date1 D_DATE select @Date1 = @Date; while (month(@Date) = month(@Date1)) and (year(@Date) = year(@Date1)) select @Date1 = @Date1 + 1 return @Date1 - 1 END Не так что бы уж сильно, но все же есть слегка. Никто не знает более быстрого варианта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 09:58 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
Можно чуть цикл уменьшить CREATE FUNCTION dbo.F_LASTDAYOFMONTH (@DATE D_DATE) RETURNS D_DATE AS BEGIN declare @Date1 D_DATE if day(@date) < 28 select @Date1 = dateadd(dd, (28 - day(@Date)), @Date); else select @Date1 = @date while (month(@Date) = month(@Date1)) and (year(@Date) = year(@Date1)) select @Date1 = @Date1 + 1 return @Date1 - 1 END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:05 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
select dateadd(ss, -1, dateadd(mm, 1, left(convert(varchar(20), getdate(), 120), + '01')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:08 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
select dateadd(ss, -1, dateadd(mm, 1, left(convert(varchar(20), getdate(), 120), 8 ) + '01')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:09 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
Даже еще проще select dateadd(ss, -1, dateadd(mm, 1, convert(varchar(8 ), getdate(), 120) + '01')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:13 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
-- Using UDF CREATE FUNCTION dbo.LastMonthDay ( @Date datetime ) RETURNS datetime AS BEGIN RETURN (DATEADD(day, -1, CAST(STR(MONTH(@Date)+1) + '/' + STR(01) + '/' + STR(YEAR(@Date)) AS DateTime))) END GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:50 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
Не знаю как в коде (не программист - руководитель уже), но можно вытаскивать первое число следующего месяца и отнимать один день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 10:50 |
|
||
|
Последняя дата месяца
|
|||
|---|---|---|---|
|
#18+
declare @d datetime select @d = getdate() --последний день месяца select dateadd(d, -day(@d), dateadd(m, 1, @d)) --первый день месяца select dateadd(d, -day(@d) + 1, @d) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2001, 12:37 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3552&tid=1825806]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 354ms |

| 0 / 0 |
