#c# #oledb #date-format
#c# #oledb #дата-формат
Вопрос:
У меня есть еще одна интересная проблема. Я использую oledb для получения данных из Excel. строка подключения:
oleConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" filepath "; Extended Properties="Excel 12.0;IMEX=1;HDR=no;"";
и оператор select является:
string strSQLWorks ="SELECT * FROM [Работы$] WHERE [F1]<>null";
Итак, я получаю все столбцы. Но в моем объекте datatable я получаю дату в таком формате — мм / дд / гггг.
Когда я использую HDR= yes и другой оператор select, я получаю дату, например, дд.мм.гггг.
В Excel вся дата в ячейках выглядит как дд.мм.гггг, я не могу понять, почему oledb возвращает мне форматированное значение даты.
Комментарии:
1. Чего вы хотите достичь? AFAIK Excel в любом случае использует настройки глобализации системы для отображения дат, валют и т. Д
2. Форматирование даты — это отображение, а не на уровне данных, дата доступа — это дата, у нее нет формата, это часть данных, представляющая дату, вы можете форматировать вывод, как вам нравится, используя что-то вроде string.format()
3. Я хочу получать данные из ячеек так, как они есть в ячейке. Мне нужен формат, подобный дд.ММ.гггг.
4. и если у вас есть примеры того, как форматировать строковое значение, содержащее мм / дд / гггг, в строку, содержащую дд.мм.гггг, поделитесь им, пожалуйста.
5. Является ли возвращаемое значение строкой или действительно датой-временем? Что произойдет, если вы просто приведете его к дате-времени? Если это работает, то вы можете использовать . Перегрузка toString для указания строки формата.