문제

타임 스탬프 필드가있는 Informix 데이터베이스가 해마다 두 번째로 정의되어 있습니다. jdbc rs.getstring (열)을 사용 하여이 필드를 표시하면이 필드가 다음과 같이 보이므로 다음과 같이 보입니다.

2008-12-18 13:58:14.0

두 번째 필드에서 1 년 만 사용하고 싶습니다. 환경 변수를 설정합니다.

GL_DATETIME=%Y-%m-%D %H:%M:%S

그러나 그때조차도 나는 밀리 초를 얻었습니다. ODBC를 사용하는 프로그램에는 밀리 초가 표시되지 않습니다. Timestamp String "Year ~ Second"만 어떻게받을 수 있습니까? 내 프로그램에서 필드가 타임 스탬프이고 ".0"을 자르면 메타 데이터를 확인할 수 있지만 더 단순한 방법이 있어야한다고 생각합니다.

서버 버전 : IBM Informix 동적 서버 버전 11.50.tc2de

클라이언트 버전 : IBM Informix JDBC IBM Informix Dynamic Server 3.50.jc3de 용 Driver

편집하다 내가 테스트 한 다른 모든 JDBC 드라이버 (Oracle 및 PostgreSQL)는 getString ()을 사용하는 경우 밀리 초의 타임 스탬프 열을 보여줍니다. 그래서 Todd가 제안한 솔루션을 사용했습니다. Metatdata를 확인하고 열이 Timestamp 인 경우 getTimestamp ()를 사용하여 포맷합니다.

도움이 되었습니까?

해결책

JDBC를 사용하는 경우 날짜와 타임 스탬프 객체를 각각 반환하는 rs.getDate (열) 또는 rs.getTimestamp (열) 메소드를 사용할 수 있습니다. 그런 다음 직접 표현하는 문자열이 아니라 시간을 나타내는 객체가 있습니다. 날짜 또는 타임 스탬프를 사용하면 a를 사용할 수 있습니다 날짜 Formatter 선택한 시간의 모든 문자열 표현으로 포맷하려면 선택합니다.

업데이트 (아래 주석을 읽은 후) : getDate ()를 사용하는 경우 여전히 타임 스탬프 열에서 작동합니다. 정밀도를 두 번째로 줄입니다. 그렇다면 메타 데이터를 확인할 필요가 없으므로 열이 일종의 타임 스탬프 또는 날짜라는 것을 알아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top