Re: Una cuestion en pl/pgsql

From: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
To: Roberto Andrade Fonseca <randrade(at)inteligentes(dot)com(dot)mx>
Cc: leonardo(dot)amezquita(at)ubiquando(dot)com(dot)co, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Una cuestion en pl/pgsql
Date: 2005-05-03 22:31:15
Message-ID: m3is20osb0.fsf@conexa.fciencias.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Roberto Andrade Fonseca <randrade(at)inteligentes(dot)com(dot)mx> writes:

> Hola:
>
> Quoting Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>:
>
>> Roberto Andrade Fonseca <randrade(at)inteligentes(dot)com(dot)mx> writes:
>>
>> > Usa:
>> >
>> > pos_db=> SELECT date_part('month','01/06/2005'::date);
>> > date_part
>> > -----------
>> > 6
>> > (1 row)
>>
>> Eso no va a jalar, al menos no en todos los casos. El camino más
>> seguro sería con to_date, algo como:
>
> ¿En que caso no jala?

En el caso de que no tengas configurado DateStyle, por ejemplo en mi
máquina:

test0=# SELECT '01/06/2005'::date;
date
------------
2005-01-06
(1 fila)

test0=# SELECT date_part('month','01/06/2005'::date);
date_part
-----------
1
(1 fila)

>> SELECT substring('01/06/2005' from '^...(..)');
>
> ¿Y si la fecha viene como '1/6/2005'?

Pues arreglas la expresión regular:

test0=# SELECT substring('1/6/2005' from '^[^/]+/([0-9]+)' );
substring
-----------
6
(1 fila)

> A esta:
>
> SELECT date_part('month', to_date('01/06/2005', 'DD/MM/YYYY'));
>
> no le veo ningún problema.

Yo si, que como la fecha es un string no necesariamente representa una
fecha válida, pero ese es otro problema (ie, esta mal diseñada la
aplicación - base de datos).

Saludos,
Manuel.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message leonardo.amezquita 2005-05-03 22:43:03 Re: Una cuestion en pl/pgsql
Previous Message Roberto Andrade Fonseca 2005-05-03 22:30:27 Re: Una cuestion en pl/pgsql