user398384
user398384

Reputation: 1204

Using SQL function in parameterized statement

Considering this query:

insert (a, b, update_time) values (1, 1, now() - interval 10 second)

Now, I need to convert it to a parameterized statement:

insert (a, b, update_time) values (?, ?, ?) 

The problem is you cannot use SQL function in the parameter. How do I write this kind of code?

Upvotes: 1

Views: 286

Answers (2)

Joshua Martell
Joshua Martell

Reputation: 7202

There's no need to parameterize the date code:

insert (a, b, update_time) values (?, ?, now() - interval 10 second)

Now it only takes two parameters and the date will be handled on the server. I've had timezone issues between JDBC and MySQL concerning daylight savings time. Be careful!

Upvotes: 1

duffymo
duffymo

Reputation: 309028

Date now = new Date();
PreparedStatement ps = connection.prepareStatement("INSERT INTO your_table(a, b, update_time) VALUES(?, ?, ?)");
ps.setObject(1, a);
ps.setObject(2, b);
ps.setDate(3, now);
ps.executeUpdate();

Upvotes: 2

Related Questions