Re: Help with quotes in plpgsql
От | Tom Lane |
---|---|
Тема | Re: Help with quotes in plpgsql |
Дата | |
Msg-id | 14125.1166574420@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Help with quotes in plpgsql ("Hector Villarreal" <HVillarreal@mynewplace.com>) |
Ответы |
Re: Help with quotes in plpgsql
|
Список | pgsql-sql |
"Hector Villarreal" <HVillarreal@mynewplace.com> writes: > select into a now() - ($1::text||'days')::interval; People keep suggesting variants of that as ways to convert numeric values to intervals, but it's really extremely bad practice. Much better is to use number-times-interval multiplication: select into a now() - $1 * '1 day'::interval; This is less typing, at least as easy to understand, more flexible (you can use any scale factor you want), and considerably more efficient. The first way involves coercing the integer to text, then text-concatenating that with a constant, then applying interval_in which does a fairly nontrivial parsing process. The second way is basically just a multiplication, because '1 day'::interval is already a constant value of type interval. regards, tom lane
В списке pgsql-sql по дате отправления: