Thilo (at) Riessner (dot) de writ :
> 나는를 통해 날짜의 에포크 값을 얻으려고 노력한다.
> pqexecparams (Conn, "Expoch, Content로 추출 (날짜 + 시간부터 epoch)을 선택하십시오.
> Daten에서 .....);
> 해당 토토 사이트베이스에서 타임 스탬프는 두 필드 날짜와 시간에 저장된 것입니다.
>이 토토 사이트를 이진 형식으로 가져오고 싶습니다. 그만큼
> pqfsize (res, 1);
> 반환 된 토토 사이트의 크기는 8 바이트라고 말합니다 (
> 에포크의 표준 크기는 4 바이트)
> 나는 그로부터 에포크 밸브 (1970 년 이후 몇 초)를 얻지 못합니다
> 반환 된 값.
추출물에 관한 문서 (소스에서 필드) 말한다 :
"추출 함수는 유형의 이중 정밀도 값을 반환합니다"
in c, 아마도 "double"64 비트 플로팅 포인트 유형에 매핑 될 것입니다.
이진 표현을 호스트 변수로 변환하는 코드의 경우
백엔드/libpq/pqformat.c에서 우편 그 자체의 비트
그렇지 않으면 작업 예제가 다음과 같이 보일 수 있습니다
(플랫폼에 적합한 것을 보장하지 않음) :
#include
Union
uint64_t i;
더블 FP;
스왑;
UINT64_T IBE = *((UINT64_T *) PQGETVALUE (결과, 행, 열);
swap.i = be64toh (ibe);
결과는 swap.fp에 있습니다.
또는 Postgres에서 int를 얻는 것을 선호하는 경우 extract ()의 결과를 캐스트합니다.
SQL 쿼리 자체의 정수에.
안부,
--
Daniel
Postgresql 기반 메일 사용자 에이전트 및 스토리지 :http://www.manitou-mail.org