У меня есть таблица базы данных, которая имеет два столбца. Один из них - TIMESTAMPTZ, другой - TIMESTAMP. Когда я читаю тип столбца с помощью функции getColumnType () из JDB C, он возвращает 93 (Types.TIMESTAMP) для обоих столбцов. Но когда вы выбираете функцию getColumnTypeName (), она возвращает разные значения.
Вот пример кода:
try {
Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/tztestdb", "u", "p");
Statement statements = connection.createStatement();
ResultSet resultSet = statements.executeQuery("SELECT * FROM TZTEST");
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
String columnName = metaData.getColumnName(i);
String type = metaData.getColumnTypeName(i);
int typeNo = metaData.getColumnType(i);
System.out.println(columnName + " > " + type + " > " + typeNo);
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
, а вот вывод:
datetimetzcol > timestamptz > 93
datetimecol > timestamp > 93
Есть ли простой способ распознать / обнаружить разницу без сравнения текста?