MySQL データベースに DATETIME
列があります。 ResultSet
メタデータを使用して列の型を取得すると、間違った TIMESTAMP
が返されます。この列の正しい java.sql.SQLType
値を取得するにはどうすればよいですか?
もっと具体的に言ってみます。 Java コードを使用してデータベースの構造を定義します。例えば;### リーリー
次に、私の小さなバリデーター コードがこの列を作成します (そこにテーブルが定義されていると仮定します)。その後、このコードをに変更すると、 リーリー
私の小さなバリデータは列サイズを 200 に変更します。これを行うには、メタデータをとして取得します。 リーリー
次に列のプロパティにアクセスしますリーリー
これにより、JDBCType 列挙が返されます。このクエリを
MySQL DATETIME 列に対して実行するとします。 Java にはそのようなものはないことは知っていますが、それに相当するのは
java.sql.Timestamp クラスです。しかし、MySQL では、DATETIME は TIMESTAMP ではありません。
DATETIME と MySQL
TIMESTAMP を区別するにはどうすればよいですか?
汎用 JDBC の観点からは、
DatabaseMetaData .getColumns(...)
、これは返されるはずです:つまり、データ ソースで使用されるデータ型の名前が含まれている必要があります (この場合、MySQL は
DATETIME
を返す必要があります)。注: 私はこれを実際に検証していません。私の答えは純粋に一般的な JDBC 要件に基づいています。