Oracle: Как я могу выбрать записи ТОЛЬКО со вчерашнего дня?

https://github.com/AnthonyCaliendo/action_mailer_callbacks

Я обнаружил, что этот плагин довольно легко помог мне решить проблему (как за < 5 минут). Я просто изменяю @@ smtp_settings для конкретного почтовика в before_deliver, а затем меняю его обратно на значения по умолчанию в after_deliver. Используя этот подход, мне нужно только добавить обратные вызовы к почтовым программам, которым требуется @@ smtp_settings, отличный от значения по умолчанию.

class CustomMailer < ActionMailer::Base

  before_deliver do |mail|
    self.smtp_settings = custom_settings
  end

  after_deliver do |mail|
    self.smtp_settings = default_settings
  end

  def some_message
    subject "blah"
    recipients "blah@blah.com"
    from "ruby.ninja@ninjaness.com"
    body "You can haz Ninja rb skillz!"
    attachment some_doc
  end

end

38
задан OMG Ponies 19 February 2010 в 22:18
поделиться

4 ответа

Использование:

AND oh.tran_date BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE) - 1/86400

Ссылка: TRUNC

Вызов функции на tran_date означает, что оптимизатор не сможет использовать индекс (при условии один существует), связанный с ним. Некоторые базы данных, такие как Oracle, поддерживают индексы на основе функций, которые позволяют выполнять функции с данными, чтобы минимизировать влияние в таких ситуациях, но администраторы баз данных IME этого не допускают. И я согласен - в данном случае они действительно не нужны.

69
ответ дан 27 November 2019 в 03:20
поделиться
trunc(tran_date) = trunc(sysdate -1)
16
ответ дан 27 November 2019 в 03:20
поделиться
to_char(tran_date, 'yyyy-mm-dd') = to_char(sysdate-1, 'yyyy-mm-dd')
2
ответ дан 27 November 2019 в 03:20
поделиться

Если вы не поддерживаете будущие датированные транзакции, то может сработать что-то вроде этого:

AND oh.tran_date >= trunc(sysdate-1)
2
ответ дан 27 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

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