2013-09-19 10 views
3

Я читаю значения из Excel и вставляю строки чтения в SQL, но у меня возникает проблема с столбцами даты.Преобразование datetime из формата excel в формат sql

Из Excel Я читаю даты как 23-08-2011 01:33:01, но в базе данных значения хранятся как 2011-08-22 10:21:18.000.

Есть ли способ, которым я могу конвертировать в C# (не в T-SQL) дату, которую я читаю в формате yyyy-mm-dd 00:00:00:000? Я хочу преобразовать 23-08-2011 01:33:01 в 2011-08-23 00:00:00:000.

ответ

3
  1. строка Анализировать Excel в DateTime объекта с помощью DateTime.ParseExact
  2. Формат DateTime объекта в формате SQL, используя String.Format и соответствующую строку формата.

Посмотреть эти два ресурса для руководства, как создать формат DateTime строку:

Standard Date and Time Format Strings

Custom Date and Time Format Strings

DateTime excel = DateTime.ParseExact("23-08-2011 01:33:01", "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture); 
String sqlString = String.Format("{0:yyyy-MM-dd hh:mm:ss:ffff}", excel); 
1

Используйте ParseExact метод из DateTime

DateTime parsedDate = DateTime.ParseExact("23-08-2011 01:33:01", 
    "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture); 

В зависимости от того, как вы вставляя свои записи, вы должны быть в состоянии использовать свой объект DateTime, в противном случае вы можете сохранить его в виде строки:

string sqlDate = parsedDate.ToString("yyyy-mm-dd hh:mm:ss:fff"); 
1
string dateString = "23-08-2011 01:33:01";    
string format = "dd-MM-yyyy hh:mm:ss";    
DateTime date = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture); 
string again = date.ToString("yyyy-MM-dd 00:00:00:000"); 
Смежные вопросы