2013-07-01 31 views
0

У меня возникли проблемы при попытке вставить дату в сервере SQL с помощью Java:Преобразование даты строку в формате java.sql.Date

//final String input = "20120823151034"; 
final String input = "06282013143533"; 

final DateFormat df = new SimpleDateFormat("MMddyyyyHHmmss"); 
final Calendar c = Calendar.getInstance(); 
c.setTime(df.parse(input)); 
//c.add(Calendar.MILLISECOND, 1); 
String s=df.format(c.getTime()); 
java.util.Date parsedUtilDate = df.parse(s); 
java.sql.Date sqltDate= new java.sql.Date(parsedUtilDate.getTime()); 
System.out.println(sqltDate); 

Вот, я ожидал полную строку выводятся как год, месяц, день, час, минуты и секунды для ввода в SQL-сервер, но я получаю только год, месяц и дату. Что мне нужно сделать, чтобы вставить дату и время в базу данных?

+1

Почему вы конвертируете строку-> календарь-> строку-> дату -> .... в чем смысл? также выполняет c.setTime (df.parse (input)); работать после окончательного решения? –

+0

вот требование: мне будет дана дата с 06282013143533. Мне нужно вставить ее в sqlserver db, чтобы iam пытался конвертировать дату, указанную в SQL Server совместимый! – user2335416

ответ

3

проверить тип данных в базе данных либо он должен быть Timestamp или Datetime для этой цели вы можете использовать функцию базы данных NOW() для текущей даты и time.And преобразовать дату в метку времени

Timestamp timestamp = new Timestamp(new Date().getTime()); 

и вставьте этот timestamp в база данных

+0

да это дата времени в дБ? – user2335416

+0

Не могли бы вы рассказать мне, как получить это, его не для текущей даты и времени, которые должны быть применимы к предыдущим датам, также – user2335416

+0

конвертировать вашу строку даты в дату, а затем преобразовать ее на дату, а затем вставить в нее временную метку. –

1

java.sql.Date можно использовать, чтобы сохранить только год, месяц и день месяца. Он не может использоваться для хранения времени суток.

Чтобы сохранить время, вам нужно будет использовать Timestamp. В вашем коде выше, замените

java.sql.Date sqltDate= new java.sql.Date(parsedUtilDate.getTime()); 

по

java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedUtilDate.getTime()); 

Вышеуказанные изменения будут делать работу хорошо.

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