У меня есть проект MVC с двумя полями, в которые пользователь может ввести две даты.
Модель:
[DisplayName("Date From")]
public string DateFrom { get; set; }
[DisplayName("Date To")]
public string DateTo { get; set; }
Две даты принадлежат одному столбцу в базе данных, который называется * 1006.*.Этот диапазон дат является результатом.
В базе данных столбец OriginalDate
является полем character varying
.Синтаксис DD.MM.YYYY
.
Когда пользователь вводит «Дата с» 14.02.2017
(DD.MM.YYYY
) и «Дата до» 20.02.2019
, как я могу достичь результата, что мой запроснаходит все результаты между этими двумя датами?
Рассматривал это утверждение:
SELECT * FROM tbl.tbl
WHERE OriginalDate BETWEEN '14.02.2017' AND '20.02.2019'
Это дает мне результат, но также и из других лет.Например DD.MM.1998
или DD.MM.2009
.Как я должен привести, что это утверждение работает?
Тогда я попытался TO_DATE
:
SELECT * FROM tbl.tbl
WHERE OriginalDate BETWEEN TO_DATE('14.02.2017', 'DD.MM.YYYY')
AND TO_DATE('20.02.2019', 'DD.MM.YYYY')
Там я получаю эту ошибку:
LINE 1: SELECT * FROM tbl.tbl WHERE OriginalDate BETWEEN TO_DAT...
^
HINT: No operator matches the given name and argument type(s).
You might need to add explicit type casts.
SQL state: 42883
Кроме того, этомой вопрос, если я приведу его к дате, он найдет его, когда столбец является символьной переменной?
Как я могу решить эту проблему?