Я не могу воспроизвести ваш пример того, что Oracle возвращает 198753.
select TO_CHAR(DATE '1987-01-01', 'YYYYIW') from dual
возвращает мне 198701
, что является правильным в соответствии с определением ISO номеров недель.
Oracle имеетдругая маска формата WW
(вместо IW
), которая использует неделю, в которой первый день года указан как неделя № 1, что опять-таки вернет номер недели 1 для 1 января.
Естьпосмотрите здесь: http://en.wikipedia.org/wiki/Week_number#Week_numbering
Я нахожу номер недели в MySQL немного странным, потому что ни одна схема нумерации неделей, которую я знаю, не вернула бы 53-ю неделю 1 января 1987 года (но это не так много значит...)