>  Q&A  >  본문

JDBC 날짜/시간 유형

MySQL 데이터베이스에 DATETIME 列。我使用 ResultSet 元数据来检索列类型,它返回 TIMESTAMP 这是不正确的。如何获取此列的正确 java.sql.SQLType 값이 있습니까?

더 구체적으로 말씀드리겠습니다. Java 코드를 사용하여 데이터베이스의 구조를 정의합니다. 예를 들면

으아악

그런 다음 내 작은 유효성 검사기 코드가 이 열을 생성합니다(테이블이 거기에 정의되어 있다고 가정). 그런 다음 나중에 이 코드를

로 수정하면 으아악

내 작은 유효성 검사기가 열 크기를 200으로 변경합니다. 이를 위해 메타데이터를

로 검색합니다. 으아악

그런 다음 열 속성에 액세스하세요

으아악

이렇게 하면 JDBCType 枚举。假设我在 MySQL DATETIME 列上运行此查询。我确实知道在Java中没有这样的东西,它的等价物是 java.sql.Timestamp 클래스가 반환됩니다. 그러나 MySQL에서는 DATETIME이 TIMESTAMP가 아닙니다.

Java 코드에서 MySQL DATETIME和MySQL TIMESTAMP을 구별하는 방법은 무엇입니까?

P粉486138196P粉486138196297일 전514

모든 응답(1)나는 대답할 것이다

  • P粉338969567

    P粉3389695672023-12-28 13:22:01

    일반 JDBC 관점에서 DatabaseMetaData .getColumns(...)DatabaseMetaData .getColumns(...), 다음이 반환되어야 합니다:

    즉, 데이터 소스에 사용된 데이터 유형의 이름이 포함되어야 합니다(귀하의 경우 MySQL은 DATETIMEDATETIME을 반환해야 함).

    참고: 실제로 이를 확인하지는 않았습니다. 제 대답은 순전히 일반적인 JDBC 요구 사항을 기반으로 합니다.

    회신하다
    0
  • 취소회신하다