powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как узнать номер недели в месяце
7 сообщений из 7, страница 1 из 1
как узнать номер недели в месяце
    #33282544
Olya_33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как узнать номер недели в месяце ?



допустим сегодня : 21-09-2005 принадлежит какой неделе в сентябре?
...
Рейтинг: 0 / 0
как узнать номер недели в месяце
    #33282560
olya_33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nashla :


declare @d datetime
set @d=convert(char(8),getdate(),112)
select '№ недели в месяце',(day(@d)+datepart(weekday,dateadd(day,1-day(@d),@d))-datepart(weekday,@d))/7+1
...
Рейтинг: 0 / 0
как узнать номер недели в месяце
    #33282673
LISSY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Баловство, конечно, но мне нравится...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
if object_id ('tempdb..#w') is not null drop table #w
--//-----------------------------------------------------------------------------------------
declare @bdate datetime, @edate datetime, @b_date datetime, @e_date datetime, @nd int,
        @note varchar ( 64 ), @MyDog varchar ( 8000 ), @nday int, @nweek int, 
        @tday varchar ( 3 ), @tc varchar ( 3 ), @datesettings int, @langsettings varchar ( 16 )
--//-----------------------------------------------------------------------------------------
select @bdate = '20050101', @edate = '20051231', 
       @datesettings = @@datefirst, @langsettings = @@language
set datefirst  1 
set language russian
--//-----------------------------------------------------------------------------------------
create table #w 
(
  [Примечание] varchar ( 64 ) null, [Неделя] int null,
  [Пн.] varchar ( 8 ) null, [Вт.] varchar ( 8 ) null,
  [Ср.] varchar ( 8 ) null, [Чт.] varchar ( 8 ) null,
  [Пт.] varchar ( 8 ) null, [Сб.] varchar ( 8 ) null,
  [Вс.] varchar ( 8 ) null,
)
--//-----------------------------------------------------------------------------------------
select @b_date = dateadd (day,  1 , dateadd (day, - datepart (day, @bdate), @bdate))
select @e_date = dateadd (month,  1 , @edate)
select @e_date = dateadd (day, - datepart (day, @e_date), @e_date)
select @nd = datediff (day, @b_date, @e_date)
--//-----------------------------------------------------------------------------------------
while @nd >=  0 
begin
   select @nday = datepart (weekday, @b_date), @nweek = datepart (week, @b_date)
   select @note = datename (month, @b_date) + ' ' + convert (char ( 4 ), year (@b_date))
   if not exists 
   (
     select * from #w where [Примечание] = @note and [Неделя] = @nweek
   )
   insert into #w select [Примечание] = @note, @nweek as [Неделя], 
               '', '', '', '', '', '', ''
   select @tday = case when @nday =  1  then 'Пн.' when @nday =  2  then 'Вт.'
                       when @nday =  3  then 'Ср.' when @nday =  4  then 'Чт.'
                       when @nday =  5  then 'Пт.' when @nday =  6  then 'Сб.'
                       when @nday =  7  then 'Вс.' else null
                  end,
          @tc = case when @b_date between @bdate and @edate 
                     then convert (varchar ( 3 ), datepart (day, @b_date))
                     else ' '
                end
   select @MyDog = 
   'update #w set [' + @tday + '] = ' + char( 39 ) + @tc + char( 39 ) + 
   ' where [Примечание] = ' + char ( 39 ) + @note + char ( 39 ) +
   ' and [Неделя] = ' + convert (varchar ( 3 ), @nweek)
   exec (@MyDog)
   select @nd = @nd -  1 , @b_date = dateadd (day,  1 , @b_date)
end
--//-----------------------------------------------------------------------------------------
select * from #w
--//-----------------------------------------------------------------------------------------
if object_id ('tempdb..#w') is not null drop table #w
--//-----------------------------------------------------------------------------------------
set datefirst @datesettings
set language @langsettings
...
Рейтинг: 0 / 0
как узнать номер недели в месяце
    #33282727
Брюлик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE FUNCTION dbo.WeekOfMonth(@now_day DATETIME)
RETURNS INT
AS
BEGIN
RETURN DATEPART(week, @now_day)
- DATEPART(week, CONVERT(CHAR(6), @now_day, 112)+'01')
+ 1
END
...
Рейтинг: 0 / 0
как узнать номер недели в месяце
    #33282772
Проходимец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select datepart(day, getdate()) /  7  +  1 
...
Рейтинг: 0 / 0
как узнать номер недели в месяце
    #33282775
Проходимец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проходимец
Код: plaintext
select datepart(day, getdate()) /  7  +  1 

Неверно :D Погорячился :D
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как узнать номер недели в месяце
    #39630973
LestatKim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
CEILING(DATEPART(DAY, @Date) / 7.0)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как узнать номер недели в месяце
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]