有没有一种方法可以在JAVA中使用dd-MM-yyy格式的日期列来复制SQLServerBulkCSVFileRecord的SQLServerBulkCopy?

有没有一种方法可以在JAVA中使用dd-MM-yyy格式的日期列来复制SQLServerBulkCSVFileRecord的SQLServerBulkCopy?,java,sql-server,date,sql-server-2012,sqlbulkcopy,Java,Sql Server,Date,Sql Server 2012,Sqlbulkcopy,我正在尝试从CSV文件批量插入SQL Server DB。 如果日期格式为yyyy-MM-dd,则整个代码工作正常 但是如果格式更改为dd-MM-yyyy,则会出现异常:线程“main”com.microsoft.sqlserver.jdbc.SQLServerException中的异常:将varchar数据类型转换为datetime数据类型导致值超出范围 CSV文件Test.CSV的内容包括: ABC,20-11-2009 DEF,15-10-1993 我如何解决这个问题 String c

我正在尝试从CSV文件批量插入SQL Server DB。 如果日期格式为yyyy-MM-dd,则整个代码工作正常

但是如果格式更改为dd-MM-yyyy,则会出现异常:线程“main”com.microsoft.sqlserver.jdbc.SQLServerException中的异常:将varchar数据类型转换为datetime数据类型导致值超出范围



CSV文件Test.CSV的内容包括:

ABC,20-11-2009

DEF,15-10-1993

我如何解决这个问题

String connectionString = "jdbc:sqlserver://abc.com:1433;databaseName=DATA";
String userName = "SG";
String password = "Welcome123";
String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driverClassName);
Connection conn = 
DriverManager.getConnection(connectionString,userName,password);


String createTempQuery = "CREATE TABLE CHECK_BCP_DATE1("+
            "ORIG_CLIV_STRING varchar(100),"+
            "CLIV_DATE DATETIME)";
PreparedStatement createTempTable = conn.prepareStatement(createTempQuery);
createTempTable.execute();



File file = new File("C:\\Users\\sandipan.ghosh\\Desktop\\Test.csv");
ByteArrayInputStream derivedCsvStream = new ByteArrayInputStream(FileUtils.readFileToByteArray(file));


SQLServerBulkCopy bulkCopy=null;
bulkCopy = new SQLServerBulkCopy(conn);
SQLServerBulkCopyOptions bcpOptions = new SQLServerBulkCopyOptions();
bcpOptions.setKeepNulls(true);
bulkCopy.setBulkCopyOptions(bcpOptions);


DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

SQLServerBulkCSVFileRecord fileRecord = new SQLServerBulkCSVFileRecord(derivedCsvStream, null, ",", false);
fileRecord.addColumnMetadata(1, "ORIG_CLIV_STRING", java.sql.Types.VARCHAR, 100, 0);
fileRecord.addColumnMetadata(2, "CLIV_DATE", java.sql.Types.DATE, 0, 0, dateTimeFormatter);

bulkCopy.setDestinationTableName("CHECK_BCP_DATE1");
bulkCopy.writeToServer(fileRecord);