java - 错误 : the <column-name> is of time without time zone but expression is of type character varying

标签 java postgresql

我正在使用 postgresql 数据库。我将值从 java 类插入到数据库中。我已将不带时区的数据类型时间字段声明为字符串。我不知道如何解析并将其发送到与数据类型匹配的数据库?我该怎么做?

public static void User(Form t)
{
String insertTableSQL = "INSERT INTO DBUSER"
    + "(USER_ID, USERNAME,CREATED_DATE) VALUES"
    + "(?,?,?)";
PreparedStatement ps = dbConnection.prepareStatement(insertTableSQL);
ps.setString(1, t.getUserID());
ps.setString(2, t.getuserName());
ps.setString(3, t.getTime());
ps.executeUpdate();
}

错误:错误:CREATED_DATE 是没有时区的时间,但表达式的类型是字符变化 提示:尝试转换表达式

最佳答案

尝试添加显式类型转换

改变
+ "(?,?,?)";

+ "(?,?, CAST (? AS time))";

关于java - 错误 : the <column-name> is of time without time zone but expression is of type character varying,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037534/

相关文章:

java - java中如何根据环境加载资源文件?

ruby-on-rails - Rails 无法使用 NOW() 默认值创建迁移到 Postgres

postgresql - 在 elixir 中使用 Ecto.Repo 时哪些函数被称为 'under the hood'

java - 强制 decimalformat 以英语而非阿拉伯语格式化数字

java - 在设置 javax.net.ssl.trustStore 之前加载的默认信任库

java - Array.equals(...) 给出了不正确的结果

java - 如何监视 Java 线程堆栈的内存

postgresql - 我们如何使用 HAproxy 实现对 postgres master 的路由请求

sql-server - 我可以从 Postgres 复制到 MS SQL 吗?

sql - 如何创建考虑匹配的查询,即使它有两个不同的字母