使用JDBC将String作为datetime2(0)插入SQL Server 2012会导致错误

时间:2014-07-23 11:28:31

标签: java sql sql-server jdbc

我从外部源收集数据,并希望将其插入到我的SQL Server 2012数据库中。当我尝试插入一个字符串时,格式如下:" YYYY-MM-DD hh:mm:ss",符合the documentation。,它不会像我一样想要。

为了澄清,我的表的第一列是datetime2(0)类型。

执行以下代码

insertData() {
...

insert.execute("INSERT INTO [LindTrading].[dbo].[Bloomberg]" +
                " VALUES" +
                "(" +
                trade.getTimestamp() + " ," +
                trade.getAmount() + "," +
                trade.getPrice() + "," +
                trade.getTicker() +
                ")");

...
}

时间戳示例是" 2014-07-22 00:04:08"。

我收到以下错误: (...)。SQLServerException:' 00'附近的语法不正确。

此外,getTicker()返回一个字符串,例如" CF US EQUITY",当我尝试插入varchar(25)列时,美国周围的空间似乎会导致类似的问题。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

包含日期时间的字符串应在撇号内,如

'2014-07-23 12:00:00'

不仅

2014-07-23 12:00:00

是这样的吗?