У меня есть следующая проблема. Я написал запрос, чтобы получить дату заказа в C#:Поиск записей между заданным диапазоном дат в sql с столбцом varchar
QueryDate = string.Format("(Order.Begin>= '{0}' and Order.End<= '{1}')", BeginDate, EndDate);
Проблема заключается в моих столбцах таблицы SQL Server, «Begin» и «End», являются VARCHAR столбцов, и я хочу, чтобы держать их таким образом. Например, они сохраняются как '12 -4-2012 '.
Теперь, чтобы увидеть даты, попробуйте нажать '12 -4-2012 'и '19 -4-2012. Но результатом является все между «12» и «19» с первыми двумя цифрами. Таким образом, результаты также включают, например, «14 -8-2011».
Есть ли способ получить только даты между '12 -4-2012 'и '19 -4-2012' со столбцом строки?
Это очень плохой дизайн. Нет простого способа сделать это, не используя сложное преобразование строк, которые калечат механизм оптимизации SqlServer. – Steve
Хранение дат как строк - очень плохой дизайн. Что такое 12-4, 12 апреля или 4 декабря? Построение такой строки SQL также попросит SQL-атаки на атаку –
12 апреля. Пользователь использует DateTimePicker, а формат по умолчанию - dd-MM-yyyy, и это скрывается в строке. И программа является внутренней. Он не может быть выполнен с нашего сервера, если вы не входите в наш домен. – Drabe