当前位置: 首页 > 面试题库 >

JDBC准备语句。setDate(...)不会节省时间,仅节省日期。.我如何也可以节省时间?

梁嘉祥
2023-03-14
问题内容

我有以下查询:

INSERT INTO users (user_id, date_created) VALUES (?,?)

我有以下准备好的声明

PreparedStatement insertUser = dbConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

insertUser.setInt(1, 7);
java.util.Date now = new java.util.Date(System.currentTimeMillis());
insertUser.setDate(2, new java.sql.Date((new Date(System.currentTimeMillis())).getTime()));
insertUser.executeUpdate();

如果我检查数据库,我发现它只插入今天的日期而不是时间,因此它将是: 2011-07-29 00:00:00

我还应该投入些什么setDate()来打发时间?


问题答案:

您应该使用
Timestamp

setTimestamp* 方法来代替 Date
****

*

实际上,您必须执行以下操作:

private static java.sql.Timestamp getCurrentTimeStamp() {
    java.util.Date today = new java.util.Date();
    return new java.sql.Timestamp(today.getTime());
}

....

preparedStatement.setTimestamp(4,getCurrentTimeStamp());


 类似资料:
  • 根据维基百科和我查阅过的其他来源,你需要矩阵;-物品数和-背包的总容量。这个矩阵变得很大,有时太大了,无法在C程序中处理它。我知道动态编程是基于节省内存的时间,但是,有什么解决方案可以节省时间和内存吗?

  • 我正在处理C++代码,其中我试图将保存在列表中,以便以后读取值并计算持续时间。 之所以在列表中保存时间,是因为我有多个对象,需要捕获该对象被检测到的当前时间,然后当该对象消失时,我必须计算该对象的持续时间。 错误(活动)E0304重载函数“std::list<_ty,_alloc>::insert[with_ty=double,_alloc=std::allocator]”的实例与参数列表不匹配

  • 我正在开发一个应用程序,其中: 身份验证令牌从其创建时间起有2小时的到期时间。 存储在DB中的令牌创建和到期时间是本地日期/时间(即EST) 在DST开始前2小时内生成的代币,在时钟向前移动1小时后过期。 例如:如果令牌是在2021年3月14日凌晨1:30创建的,那么它的创建和到期时间将在DB中分别设置为“2021-03-14 01:30:00”和“2021-03-14 03:30:00”。现在,

  • 具有特定组id的使用者连接到代理,监听主题不到1分钟,然后断开连接(根据业务逻辑)。当它监听主题时,它可以使用一些消息。当同一个使用者重复这个动作时,它会使用相同的消息! 我发现Kafka用间隔1分钟保存偏移。这意味着消费者必须听超过1分钟的主题。我怎样才能缩短这个间隔? 我发现了这样的属性: null null

  • 错误:“接收时间”列的类型为time,不带时区,但表达式的类型为bytea提示:您需要重写或强制转换表达式。职位:490

  • 问题内容: 我目前正在解析时间字符串并将其保存到数据库(Postgresql): 这给了我这个错误: 的类型是。 我也尝试将postgresql的类型设置为string并使用time数据类型: 但是现在在获取数据库中的记录时出现错误: 问题答案: 对此问题进行了进一步调查。当前,GORM中不支持任何日期/时间类型,除了 请参阅Dialect_postgres.go的这部分代码: 因此,基本上我可以