| From: | Dmitry Koterov <dmitry(at)koterov(dot)ru> |
|---|---|
| To: | Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Interval "1 month" is equals to interval "30 days" - WHY? |
| Date: | 2012-08-24 11:45:38 |
| Message-ID: | CA+CZih5-PwDgs1VEQDjvD29P=7zG0vX6cJ-5QMyVP6jsPSrfng@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
BTW there are a much more short version of this:
CREATE OR REPLACE FUNCTION int_equal(interval, interval) RETURNS boolean
IMMUTABLE STRICT LANGUAGE sql AS
'SELECT $1::text = $2::text';
On Wed, Aug 8, 2012 at 4:51 PM, Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>wrote:
> Then maybe you should use something like this for equality:
>
> CREATE OR REPLACE FUNCTION int_equal(interval, interval) RETURNS boolean
> IMMUTABLE STRICT LANGUAGE sql AS
> 'SELECT
> 12 * EXTRACT (YEAR FROM $1) + EXTRACT (MONTH FROM $1)
> = 12 * EXTRACT (YEAR FROM $2) + EXTRACT (MONTH FROM $2)
> AND EXTRACT (DAY FROM $1) = EXTRACT (DAY FROM $2)
> AND 3600000000 * EXTRACT (HOUR FROM $1)
> + 60000000 * EXTRACT (MINUTE FROM $1)
> + EXTRACT (MICROSECONDS FROM $1)
> = 3600000000 * EXTRACT (HOUR FROM $2)
> + 60000000 * EXTRACT (MINUTE FROM $2)
> + EXTRACT (MICROSECONDS FROM $2)';
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2012-08-24 11:48:01 | Re: Windows SIngle Sign On - LINUX Server |
| Previous Message | Ashesh Vashi | 2012-08-24 11:20:03 | Re: I: Installation faillure version 8.4.12 |