Joe*_*oey 5 java sql-server date jdbc prepared-statement
我想使用Java 将"0001-01-01"作为值插入到日期字段中PreparedStatement.
但是当我尝试这个时它抛出异常:
String sql = "insert into mytable values(?)"
ps = conn.prepareStatement(sql);
ps.setDate(1, java.sql.Date.valueOf("0001-01-01"));
ps.executeUpdate(); // throws exceptions here.
Run Code Online (Sandbox Code Playgroud)
错误是:
提供的值不是数据类型datetime的有效实例.检查源数据中的无效值.无效值的示例是具有大于精度的比例的数字类型的数据.
如果我不使用PreparedStatement,我可以插入"0001-01-01".但是,prepare语句似乎不允许我插入此值.
如果我插入"1969-01-01"而不是"0001-01-01",它将起作用.
有任何想法吗?
更新: 以下是可能需要的更多信息.
更新2:
另外,我可以在不使用prepare语句的情况下在日期字段中插入"0001-01-01".即
String sql = "insert into mytable values('0001-01-01')"
java.sql.Statement statement = conn.createStatement();
statement.executeUpdate(sql);
Run Code Online (Sandbox Code Playgroud)
所以这不是sql server的问题或db字段的问题.
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |