如何使用java prepared语句在sqlserver中的datetime字段中设置日期和时间

时间:2017-02-28 14:40:17

标签: java sql-server prepared-statement

我收到的时间以毫秒为单位,我希望将其转换为日期和时间格式,并将该值存储在 sqlserver 的datetime列中。

以下是正在运行并将毫秒转换为日期和时间的代码,但无法在数据库列中设置日期和时间值。

    String datetime = 1488288835716
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(Long.parseLong(datetime));
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
    String datestring= formatter.format(calendar.getTime());
    UpdateStatement.setString(1,datestring)

2 个答案:

答案 0 :(得分:0)

您不需要将给定的毫秒转换为任何文本表示形式。事实上,大多数数据库都会以毫秒为单位存储时间/日期时间值。

相反,请使用java.sql.Timestamp,如下所示:

long timeInMillis = 1488288835716;
Timestamp time = new Timestamp(timeInMillis);
updateStatement.setTimestamp(1, time);

答案 1 :(得分:0)

你能尝试一下,克服现场,文化等问题吗?

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

我不熟悉Java,但这可能是SQL Server的一个问题,因此我总是在写入数据库之前将日期字符串放在这种格式中。