Na página de documentação do Postgres Tipos de data/hora , ele diz:
Para os tipos de tempo, o intervalo permitido de p é de 0 a 6 quando o armazenamento inteiro de oito bytes é usado, ou de 0 a 10 quando o armazenamento de ponto flutuante é usado.
Tentei produzir instrução SQL com time(p)
, quando p=10
? eu sempre consigo
ATENÇÃO: Precisão de TEMPO(10) reduzida ao máximo permitido, 6
Não importa se eu coloco segundos em float ou não. Percebo que estou perdendo algo muito óbvio. Por favor, dê um exemplo quando p = 10.
Na página vinculada, você fornece:
O que isso diz é que, para que os valores de timestamp sejam armazenados como ponto flutuante de precisão dupla (e para permitir precisão de até 10), você mesmo precisa compilar o Postgres com essa opção.
Também diz que a precisão não é exatamente 10, mas varia dependendo do valor e pode até ser menor que 6 para alguns valores (muito altos ou muito baixos).