On 09-03-2014 12:23, Bruno Silva wrote:
2014-03-08 23:11 GMT-03:00 Fabrízio de Royes Mello <[email protected]>:
On 08-03-2014 22:33, Edson F. Lidorio wrote:
Pessoal,
Estou precisando de uma ajuda no sql abaixo:
Quero pegar somente a parte inteira da subtração de duas data.
select dt_abertura,dt_fim,(dt_fim - dt_abertura)no_dias from osservhe;
dt_abertura | dt_fim | no_dias
-------------+-------------------------+------------------------
2012-11-18 | 2012-11-18 23:09:09 | 23:09:09
2012-07-23 | 2012-09-18 22:21:10 | 57 days 22:21:10
2012-09-10 | 2012-09-18 22:43:56 | 8 days 22:43:56
2012-09-03 | 2012-09-18 23:44:33 | 15 days 23:44:33
2012-08-05 | 2012-09-21 23:39:09 | 47 days 23:39:09
2012-08-15 | 2012-09-21 23:46:41 | 37 days 23:46:41
2012-08-12 | 2012-09-21 23:49:15 | 40 days 23:49:15
2012-08-06 | 2012-09-22 00:01:15 | 47 days 00:01:15
2012-08-05 | 2012-09-22 00:10:55 | 48 days 00:10:55
2012-07-23 | 2012-09-22 00:16:55 | 61 days 00:16:55
2012-10-26 | 2012-10-26 22:26:29 | 22:26:29
2012-09-10 | 2012-09-18 22:30:58 | 8 days 22:30:58
2012-07-22 | 2012-09-18 22:11:40 | 58 days 22:11:40
O resultado da sua subtração é um tipo 'interval' pois tem um timestamp
envolvido.
Faça o seguinte:
select dt_abertura, dt_fim, (dt_fim::date - dt_abertura) from osservhe;
O resultado da subtração de 2 tipos 'date' é um 'integer';
Use a função extract com epoch.
extract( 'epoch' from (dt_fim::date - dt_abertura))
Bruno,
Não vai funcionar essa sua chamada. Veja as assinaturas possíveis para
"date_part":
fabrizio=# \df date_part
List of functions
Schema | Name | Result data type | Argument data types
| Type
------------+-----------+------------------+-----------------------------------+--------
pg_catalog | date_part | double precision | text, abstime
| normal
pg_catalog | date_part | double precision | text, date
| normal
pg_catalog | date_part | double precision | text, interval
| normal
pg_catalog | date_part | double precision | text, reltime
| normal
pg_catalog | date_part | double precision | text, timestamp without
time zone | normal
pg_catalog | date_part | double precision | text, timestamp with time
zone | normal
pg_catalog | date_part | double precision | text, time without time
zone | normal
pg_catalog | date_part | double precision | text, time with time zone
| normal
(8 rows)
O resultado daquela subtração será um 'integer', logo não existe uma
'date_part' que tenha o segundo argumento deste tipo.
Att,
--
Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral