Kovalenko Dmitry пишет:
SELECT (extract(yearday from CAST('02.01.2000' as DATE)) - extract(weekday from CAST('02.01.2000' as DATE)) + 6)/7 + 1 from rdb$database даст неделю номер 2.
Все правильно. 1 января было в субботу - это первая неделя. 2 января попадает на воскресенье. А воскресенье у буржуев - начало новой недели. Значит все правильно, второе января 2002 года - это вторая неделя.
Ну, во-первых, в приведённом примере - не 2002, а 2000 год. :) А во-вторых, как насчёт ISO 8601? Который на производствах всяких там и даже в мобильниках используется. ;) Там неделя начинается с понедельника, однако первая неделя года та, которая включает в себя первый четверг года (то есть в ней не менее четырёх первых дней года). В примере с 2000 годом первая неделя начнётся 3-го числа. А первое и второе - 52 неделя 1999 года. С буквоедственным уважением, Денис Редозубов.

