Почему Redshift Datediff дает разные недели, когда разница в количестве дней одинакова?

В документации jQuery.fn.on есть хорошее объяснение.

Короче:

Обработчики событий привязаны только к выбранные в данный момент элементы; они должны существовать на странице, когда ваш код делает вызов .on().

Таким образом, в следующем примере #dataTable tbody tr должен существовать до генерации кода.

$("#dataTable tbody tr").on("click", function(event){
    console.log($(this).text());
});

Если на страницу вводится новый HTML-код, предпочтительнее использовать делегированные события для присоединения обработчика событий, как описано ниже.

Делегированные события имеют то преимущество, что они могут обрабатывать события от элементов потомков, которые будут добавлены в документ позже. Например, если таблица существует, но строки добавляются динамически с использованием кода, следующее будет обрабатывать ее:

$("#dataTable tbody").on("click", "tr", function(event){
    console.log($(this).text());
});

В дополнение к их способности обрабатывать события на дочерних элементах, которые еще не созданы, другим преимуществом делегированных событий является их потенциал для гораздо более низких накладных расходов, когда необходимо контролировать многие элементы. В таблице данных с 1000 строками в tbody первый пример кода прикрепляет обработчик к 1000 элементам.

Подход с делегированными событиями (второй пример кода) прикрепляет обработчик события только к одному элементу , tbody, и событию нужно только выровнять один уровень (от щелчка tr до tbody).

Примечание. Делегированные события не работают для SVG .

1
задан a_horse_with_no_name 28 March 2019 в 06:35
поделиться

1 ответ

Как и во многих программных продуктах из США, первый день недели в Redshift (по крайней мере, что касается DATEDIFF) - это воскресенье , а не стандарт ISO понедельника. Поэтому при подсчете количества недель между двумя датами границей является суббота / воскресенье.

В вашем примере, восемь дней между 16 марта 2019 года и 24 марта 2019 года пересекают двухнедельные границы (один 16-17 марта и один 23-24 марта), поэтому итоговое значение DATEDIFF равно 2 (две недели границ). пересекла).

Однако, восемь дней между 17 марта и 25 марта пересекают только одну неделю (23/24 марта), поэтому итоговое значение DATEDIFF равно 1.

0
ответ дан Nathan Griffiths 28 March 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: