System.Data.SqlClient.SqlException (0x80131904)) преобразование данных или времени из символа в строку - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь отфильтровать данные между двумя датами;сегодня с 12:00 до вечера в 12:00.Но я получаю эту ошибку:

System.Data.SqlClient.SqlException (0x80131904)) преобразование данных или времени из символа в строку

Код:

DateTime today = DateTime.Today;
string fileNameBase = today.ToString("dd-MMM-yyyy 12:00:00 AM");

ExportToExcel export = new ExportToExcel();
export.ExportTable("SELECT daytime, COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4, BSNO, Spare1, COLUMN_5, COLUMN_6, Spare2, DEG, TEMP3, Spare3, CAS1, CAS2, ACTIVA, Spare4, CAS3, CAS4, PHOS, Spare5, Spare6, Spare7, TEMP2, CAS5, CAS6, DRY, TEMP1 FROM TABLE_2 WHERE daytime BETWEEN '" + (today.ToString("dd-MMM-yyyy 12:00:00 AM")) + "' AND '" + today.ToString("dd-MMM-yyyy 12:00:00 PM") + "'  ");

export.SaveWorkbook();
export.shutDown();

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете сделать это:

DateTime today = DateTime.Today;
string dateAMFormat = today.ToString("dd-MMM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture));
string datePMFormat = today.AddHours(12).ToString("dd-MMM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture));

ExportToExcel export = new ExportToExcel();
export.ExportTable("SELECT daytime, COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4, BSNO, Spare1, COLUMN_5, COLUMN_6, Spare2, DEG, TEMP3, Spare3, CAS1, CAS2, ACTIVA, Spare4, CAS3, CAS4, PHOS, Spare5, Spare6, Spare7, TEMP2, CAS5, CAS6, DRY, TEMP1 FROM TABLE_2 WHERE daytime BETWEEN '" + dateAMFormat + "' AND '" + datePMFormat + "'  ");
export.SaveWorkbook();
export.shutDown();

Подробнее об этом здесь:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#tSpecifier

Как получить значение AM / PM из DateTime?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...