Select SQL conditions based on database

I'd like to have database agnostic code, however I have been
unsuccessful writing conditions that work for both postgres and mysql
for the following:

# postgres only
conditions = ["curtain_at + CAST (CAST (duration AS VARCHAR) || '
SECOND' AS INTERVAL) >= ? AND curtain_at < ?", Time.now, Time.now +
2.hours]

# MySQL only
conditions = ["curtain_at + INTERVAL duration SECOND >= ? and
curtain_at < ?", Time.now, Time.now + 2.hours]

Concert.find(:all, :conditions => conditions)

Can anyone lend some SQL expertise?

As a last resort, how can I determine what the current database is so
I can selectively set conditions?

bump