У меня есть следующие команды, используемые в приложении C# WinForms, который использует OleDb для подключения к базе данных Access 2010:Сравнение двух строк с помощью SQL
oc_payslips = new OleDbCommand("SELECT <fields> FROM Payslips WHERE LicenseID = \"" + IDs[cb_Employees.SelectedIndex] + "\" AND DateOfPayment >= \"" + startDate + "\" AND DateOfPayment <= \"" + endDate + "\"", DB_Connection.con);
Это не работает. Мое лучшее предположение заключается в том, что я не могу сравнивать две строки, подобные SQL.
Идея состоит в том, чтобы получить записи, имеющие дату между двумя датами, все из которых имеют формат «dd/MM/yyyy». Дата хранится в виде строки в базе данных.
Я не смог найти ответ на этот вопрос в Интернете, так вот мой вопрос:
Есть ли способ сравнения двух строк с помощью SQL и определить, что является первым в алфавитном порядке?
P.S .: Я знаю, что я могу получить все даты сначала, сравнить их, а затем найти идентификаторы, которые имеют правильную дату, но мой вопрос связан с выполнением этого в одном запросе SQL.
«одиночные кавычки» вместо «двойных кавычек» для строковых литералов sql? – Aprillion
@MarkByers я не думаю '01/01/2012' против.'31/12/2011' будут отсортированы по-разному на разных языках;), но эти строки не могут быть отсортированы правильно, их нужно преобразовать в дату или форматировать как строку' yyyy/mm/dd' first – Aprillion
@MarkByers, не суть, меня интересует, есть ли команда SQL для сравнения двух строк, например, вы бы сравнили два числа [используя <=/=>/etc]. –