Я разработал базовый поиск в ASP / C # для поиска записей в базе данных и предоставил пользователю следующие поля, которые они могут использовать для поиска: слово / фраза, dateFrom, dateTill. Таким образом, введя «Hello, World!», 25.05.2009, 25.06.2009 соответственно, будет искать запись базы данных с содержанием «Hello, World!» который был создан между указанными датами. Довольно простые вещи.
Текст, введенный пользователем в поля, вводится непосредственно в оператор SQL следующим образом:
SELECT r.idRecord, r.recordText
FROM record r
WHERE LOWER(CAST(r.recordText AS VARCHAR)) LIKE LOWER('%" + word/phrase + "%')
AND r.creationDate BETWEEN '" + dateFrom + "' AND '" + dateTill + "'"
Так что все еще довольно просто, и это работает как шарм, когда пользователь вводит даты в американском формате, мм / дд / гггг. Тем не менее, это не удается, когда введена дата в британском формате, например, 25/05/2009. Наконец-то ...
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS [DD/MM/YYYY]
... не особо помогает, потому что я не хочу выбирать дату, можно ли использовать подобное утверждение в предложении WHERE?
Спасибо за помощь.