繁体   English   中英

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

[英]How to Set date and time in datetime field in sqlserver using java 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)

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

而是使用java.sql.Timestamp如下所示:

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

您可以尝试这样做,以解决区域设置,文化等方面的可能问题吗?

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

我不精通Java,但这可能是SQL Server的问题,因此在写入数据库之前,我总是以这种格式放置日期字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM