Как удалить записи, где отметка времени равна 2018

Вот волшебный петь, чтобы перечислять функции внутри git diff *

git diff |                  \
grep -E '^(@@)' |           \
grep "(" |                  \
sed 's/@@.*@@//' |          \
sed 's/(.*//' |             \
awk -F " " '{print $NF}' |  \
uniq

... и что он делает ...

  1. Выбирает текущий diff,
  2. следующий выбирает только строки с «hunk-headers»,
  3. next выбирает только строки с открывающей скобкой (как потенциально содержащие имена функций),
  4. next игнорирует заголовки hunk,
  5. следующий игнорирует текст после открытия круглой скобки,
  6. next выбирает только слово непосредственно перед открывающей скобкой,
  7. и, наконец, игнорирует множественные вхождения одного и того же слова в списке.

Voila! у вас есть список функций, которые изменяются текущим git diff.


* Проверено с помощью git version 2.7.4 в Ubuntu 16.04 running bash.

-1
задан Laurenz Albe 18 January 2019 в 09:48
поделиться

3 ответа

Другой вариант - использовать условие, которое потенциально может использовать индекс для этого столбца:

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'
0
ответ дан a_horse_with_no_name 18 January 2019 в 09:48
поделиться

Спасибо за помощь. Я использовал этот запрос, чтобы решить мою проблему:

УДАЛИТЬ ОТ ОТСУТСТВИЙ ГДЕ ВЫДЕРЖКА (год ОТ "дата") = 2018;

0
ответ дан Toontje 18 January 2019 в 09:48
поделиться

Может быть, date_trunc - самый простой способ:

WHERE date_trunc('year', date) = TIMESTAMPTZ '2018-01-01 00:00:00'

extract также хорошая идея, но она возвращает double precision, и я нервничаю, сравнивая их с =.

0
ответ дан Laurenz Albe 18 January 2019 в 09:48
поделиться
Другие вопросы по тегам:

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