2013-06-10 4 views
1

У меня есть 26062012 формат. Я хочу, чтобы преобразовать этот формат datetime в SQL Server 2008.Преобразование строки в datetime SQLServer2008

Мой код:

else if (str.equalsIgnoreCase("DATETIME")){ 
    sb.append("CONVERT(Datetime,'").append(strCell).append("',102)").append(','); 
} 

Ошибка:

com.microsoft.sqlserver.jdbc.SQLServerException: The conversion of a 
    varchar data type to a datetime data type resulted in an out-of-range value. 
+0

Прежде всего: не используйте конкатенацию строк для создания SQL-запросов, используйте подготовленные операторы. Библиотеки для этого в Java изобилуют, у вас нет причин не использовать их. – fge

ответ

0

Ваша дата строка отсутствует точки, как между днем ​​сепаратора обеспечивают и месяц или месяц и год.

Формат 102 выглядит как 2012.06.26.

Для того, чтобы получить свой формат в оформленной один, я предложил бы, изменив строку

String changedDate = yourDate.SubString(0,2)+"."+yourDate.SubString(2,4)+"."+yourDate.SubString(4,8) 

и использовать формат 104.

Также, пожалуйста, сделайте так, как сказал fge, и используйте API для создания ваших запросов.

EDIT Если вы должны преобразовать тот же формат, более часто и в приложениях кратных, вы можете также создать хранимую процедуру или функцию в вашей базе данных, как so.

Смежные вопросы