Вот волшебный петь, чтобы перечислять функции внутри git diff
*
git diff | \
grep -E '^(@@)' | \
grep "(" | \
sed 's/@@.*@@//' | \
sed 's/(.*//' | \
awk -F " " '{print $NF}' | \
uniq
... и что он делает ...
blockquote>
- Выбирает текущий diff,
- следующий выбирает только строки с «hunk-headers»,
- next выбирает только строки с открывающей скобкой (как потенциально содержащие имена функций),
- next игнорирует заголовки hunk,
- следующий игнорирует текст после открытия круглой скобки,
- next выбирает только слово непосредственно перед открывающей скобкой,
- и, наконец, игнорирует множественные вхождения одного и того же слова в списке.
Voila! у вас есть список функций, которые изменяются текущим
git diff
.
* Проверено с помощью
git version 2.7.4
в Ubuntu 16.04 running bash.
Другой вариант - использовать условие, которое потенциально может использовать индекс для этого столбца:
where date >= timestamp '2018-01-01 00:00:00'
and date < timestamp '2019-01-01 00:00:00';
Если вы не хотите писать длинный «литерал метки времени» и просто передавать число к запросу вы можете использовать make_timestamp()
where date >= make_timestamp(2018,1,1,0,0,0)
and date < make_timestamp(2019,1,1,0,0,0);
Если это значение является параметром, который вы можете использовать:
where date >= make_timestamp(?,1,1,0,0,0)
and date < make_timestamp(? + 1,1,1,0,0,0);
Функция извлечения также будет работать: [ 119]
where extract(year from date)::int = 2018
или используя to_char ()
where to_char(date, 'yyyy') = '2018'
Спасибо за помощь. Я использовал этот запрос, чтобы решить мою проблему:
УДАЛИТЬ ОТ ОТСУТСТВИЙ ГДЕ ВЫДЕРЖКА (год ОТ "дата") = 2018;
Может быть, date_trunc
- самый простой способ:
WHERE date_trunc('year', date) = TIMESTAMPTZ '2018-01-01 00:00:00'
extract
также хорошая идея, но она возвращает double precision
, и я нервничаю, сравнивая их с =
.