저장된 값이 델파이 기준이라면
select (CAST('1899-12-30 00:00:00' AS timestamp) + gdate) AS delphi_dt
....
파이어버드 기준이라면
select (CAST('1900-01-01 00:00:00' AS timestamp) + gdate) AS firebird_dt
....
이렇게 하면 원하는 값을 얻을 수 있을겁니다.
저것도 아니라면 CAST의 날짜를 사용한 기준 날짜로 변경하면 될겁니다.
정환철 님이 쓰신 글 :
: 답변 감사합니다.
: 개발툴을 사용하지 않고 데이터를 변환해서 사용할수 있을까요?
: 쿼리문에서 형식을 변환해서 사용할 수있는 방법이 없을까요?
: 필드 속성은
: GDATE DECIMAL(18,8) DEFAULT 1,
: 인데 형식을 "yyyymmddhhnnss"으로 보고싶은데
: select cast(gdate as date) from tb_data
: 위 조회문은 아래같은 에러가 납니다.
: can't format message 13:587 -- message file C:\Windows\firebird.msg not found.
: conversion error from string "41810.14274306".
:
:
: 박우성 님이 쓰신 글 :
: : TDateTime형을 double float형태로 기록해 놓은 것 같네요.
: :
: : TDateTime dt = 42135.5624768499983;
: : Memo1->Lines->Add( dt.FormatString("yyyy-mm-dd hh:nn:ss") );
: :
: : 위의 코드를 실행해 보니까, "2015-05-11 13:29:58"라는 값이 나오는 것으로 보아서 맞는듯....
: :
: :
: : 정환철 님이 쓰신 글 :
: : : 필드에 기록된 값이 날자시간 인것 같은데 42135.5624768499983 이런 숫자가 증가하는데요...
: : : 감잡히시는분 계시나요? 아시는분 도와주세용... 그냥 지나치지 마시공 ㅡ,.ㅡ;;
|