Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Подскажите, как получить кол-во дней в текущем месяце и оставшее кол-во дней в текущем месяце.
Функция DayCount в SQL 2008 R2 почему-то не отрабатывает пишет: DayCount не является известным имя встроенной функции.

select DayCount(GetDate())

Спасибо
18 авг 11, 09:37    [11137203]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
aleks2
Guest
r18romik
Подскажите, как получить кол-во дней в текущем месяце и оставшее кол-во дней в текущем месяце.
Функция DayCount в SQL 2008 R2 почему-то не отрабатывает пишет: DayCount не является известным имя встроенной функции.

select DayCount(GetDate())

Спасибо

А хде она DayCount(GetDate()) "отрабатывала"?

ЗЫ. DATEPART, DATEDIFF и DATEADD - наше фсе.
18 авг 11, 09:47    [11137278]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
DECLARE @Date DATETIME
SET @Date = GETDATE()

SELECT DAY(DATEADD(Month, 1, @Date) - DAY(DATEADD(Month, 1, @Date)))

Сделал так. Первая задача решена.
Теперь вотрая: Как получить кол-во оставшихся дней в месяце?
18 авг 11, 09:48    [11137285]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
r18romik
Подскажите, как получить кол-во дней в текущем месяце и оставшее кол-во дней в текущем месяце.
Функция DayCount в SQL 2008 R2 почему-то не отрабатывает пишет: DayCount не является известным имя встроенной функции.

select DayCount(GetDate())

Спасибо

А названия функций вы сами выдумываете? Проще поглядеть в BOL, например про DATEDIFF, DATEADD, DATEPART, CONVERT
18 авг 11, 09:48    [11137286]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Кругом одни критики...блин. Функцию сишную взял, сглупил:)
18 авг 11, 09:49    [11137294]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/faq/faq_topic.aspx?fid=115
18 авг 11, 09:50    [11137304]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Как получить кол-во оставшихся дней в месяце?
18 авг 11, 09:51    [11137314]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
tpg, благодарю
18 авг 11, 09:52    [11137320]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
r18romik,

вам же уже дали ссылку...
вот накидал вариант как получить кол-во дней в месяце (если ничего не напутал), как получить оставшиеся дни, думаю разберетесь?
declare @now datetime
set @now = getdate()
select datediff(dd, convert(varchar(6),@now,112)+'01', dateadd(mm,1,convert(varchar(6),@now,112)+'01'))
18 авг 11, 09:54    [11137330]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
+ https://www.sql.ru/faq/faq_topic.aspx?fid=998
Да и вообще, FAQ и BOL почитать стоит.
18 авг 11, 09:55    [11137337]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Кол-во дней я уже получил, читайте выше.
А вот кол-во оставшихся дней пока нет.......предложите вариант пж
18 авг 11, 09:55    [11137344]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
DayCount - впервые слышу.
Хотя, в Denaly (SQL2011) требующаяся Вам функция появится.
SELECT DAY(DATEADD(DAY,-1, DATEADD(MONTH,1+DATEDIFF(MONTH,0, CURRENT_TIMESTAMP),0)));
SELECT
 CASE MONTH(CURRENT_TIMESTAMP)
  WHEN 1 THEN 31
  WHEN 2 THEN 28+ISDATE(STR(YEAR(CURRENT_TIMESTAMP))+'0229')
  WHEN 3 THEN 31
  WHEN 4 THEN 30
  WHEN 5 THEN 31
  WHEN 6 THEN 30
  WHEN 7 THEN 31
  WHEN 8 THEN 31
  WHEN 9 THEN 30
  WHEN 10 THEN 31
  WHEN 11 THEN 30
  WHEN 12 THEN 31
 END;
Но самое правильное - создать постоянную таблицу с датами лет, скажем, за сто.

FAQ
18 авг 11, 09:58    [11137358]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
r18romik
Кол-во дней я уже получил, читайте выше.
А вот кол-во оставшихся дней пока нет.......предложите вариант пж

Лень это плохо местами...
DECLARE @dt DATETIME
SET @dt=GETDATE()
SELECT  DATEDIFF(day, @dt, CAST(CONVERT(CHAR(6), DATEADD(month, 1, @dt), 112) + '01' AS DATETIME))
18 авг 11, 09:59    [11137365]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
r18romik
Кол-во дней я уже получил, читайте выше.
А вот кол-во оставшихся дней пока нет.......предложите вариант пж
Вычесть из этого количества DAY(CURRENT_TIMESTAMP) и прибавить 1 - не судьба?
18 авг 11, 09:59    [11137366]     Ответить | Цитировать Сообщить модератору
 Re: Получить кол-во дней SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
iap, уже так и сделал. Вспомнить не мог это DAY(CURRENT_TIMESTAMP)
А вы освежили мозг, благодарю
18 авг 11, 10:06    [11137404]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить