Я проводил некоторый статистический анализ данных в базе данных Postgres (v10.6), сгруппированных по неделям ISO, и наткнулся на явное несоответствие в том, как возвращаются номера недель, например:
SELECT TO_CHAR(DATE_TRUNC('week',TIMESTAMP '2019-02-14'),'WW');
возвращает 06
, тогда как:
SELECT EXTRACT(WEEK FROM TIMESTAMP '2019-02-14');
возвращает 7
Почему существует расхождение / какой изэто правильно?Я подозреваю последнее, так как эквивалентная операция в PHP также возвращает 07 :
$dte = new DateTime('2019-02-14');
echo $dte->format('W');
Меня больше всего беспокоит то, что есть какая-то веская причина для такого различия, которое я пропускаю...