【发布时间】:2019-10-12 21:51:18
【问题描述】:
在java中执行SQL查询时出错 “SQL 服务器异常:com.microsoft.sqlserver.jdbc.SQLServerException:将 nvarchar 值 '2018-10-03' 转换为数据类型 int 时转换失败”
SQL 查询
String MemberId = “103113213”;
String StartDate = ”2019-05-20”;
select distinct BLRC_CREATE_DTM,BLRC_AMT
FROM CMC_BLRC_BILL_RCPT D,CMC_SBSB_SUBSC A,CMC_GRGR_GROUP C,CDS_INID_INVOICE B
WHERE A.GRGR_CK = C.GRGR_CK
AND A.SBSB_CK = B.SBSB_CK
AND B.BLEI_CK = D.BLEI_CK
AND A.SBSB_ID IN ('"+MemberId+"')
AND FORMAT(BLRC_CREATE_DTM, 'yyyy-MM-dd') ="+StartDate+"";
【问题讨论】:
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 (无关,但仍然是一个很好的提示!) -
SQL 使用
DECLARE创建一个变量并且没有String数据类型。这看起来像是 C# 和 SQL 的奇怪组合。您也应该对查询进行参数化,而不是注入值。 -
你能告诉我们你是如何在你的java代码中应用这个查询的吗?
-
为什么要将日期列转换为字符串以与另一个日期进行比较?
标签: java sql sql-server