![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сгруппировать данные по неделям ?
wed © (2002-09-07 18:53:00)Существуют ф-ции year(), month(). Требуется сгруппировать данные по неделям. Сразу начал искать week() - с наскока не получилось, со второго и третьего тоже. Может кто-то сталкивался ???
спасибо.
wed (2002-09-09 10:07:00) [1]нет, мне именно строгие недели.
спасибо.
sniknik (2002-09-08 21:21:00) [2]не радуйся раньше времени надо действительно определится как -
Anatoly Podgoretsky © (08.09.02 16:25)
до меня только дошло ;-).
тот селект не будет отслеживать "половинчатые" недели, и еще подлые америкосы считают начало недели с воскресенья, не смущает?
короче если надо делить по неделям как в календаре надо
SET DATEFIRST 1
SELECT DATEPART(wk, GETDATE())-DATEPART(wk, CONVERT(DateTime, CONVERT(VarChar(8), GETDATE(), 102)+"01")-1)+1
но так в месяце будет по 5-6 недель смотря как захватит "кончики". Короче решай и переделывай как надо именно тебе.
wed (2002-09-08 19:31:00) [3]да...все отлично...спасибо огромное.
sniknik (2002-09-08 19:29:00) [4]А это оно и есть. Сегодня например 8-е вторая неделя с начала месяца. проверь.
Anatoly Podgoretsky (2002-09-08 17:40:00) [5]Но ему то с начала месяца
sniknik (2002-09-08 17:23:00) [6]не самое элегантное решение но как есть
SELECT DATEDIFF(wk, CONVERT(DateTime, CONVERT(VarChar(8), GETDATE(), 102)+"01")-1, GETDATE())
выдаст номер текущей недели
Anatoly Podgoretsky (2002-09-08 16:25:00) [7]Ну для этого надо как минимум определение как собираешься считать номера в месяце
wed (2002-09-08 16:21:00) [8]спасибо за подсказку, но если мед, то ложкой...
а номер недели в месяце можно получить ?
спасибо.
wed (2002-09-08 16:15:00) [9]именно MSSQL, прошу прощения, что не указал сразу
sniknik (2002-09-08 01:23:00) [10]Неозможно. Пока не скажеш тип базы, это военная тайна?
для разных баз возможны разные рашения.... или невозможны.
для MSSQL например групировку можно сделать по DATEPART(ww {or wk}, YoursVarDate)