Cute Girly Geek Ответов: 1

Обман базы данных (предполагаемая) дата с помощью nvarchar


Привет.,
У меня есть поле в моей базе данных, которое должно быть типом данных datetime. но, потому что я не могу обойти это зло Conversion failed when converting date and/or time from character string while inserting datetime ошибка. у меня есть что-то вроде
[DateUP] NVARCHAR(25)


Моя поисковая форма теперь работает с использованием
"select * from tblUsers WHERE dateUP BETWEEN '" & txtDateUp.Text & "' AND  '" & txtDateUp.Text & "23:59:59'"


Мой вопрос таков:
1. Каковы могут быть негативные последствия, которые могут произойти?
2. Это общий ни-ни? или это зависит от того, как вы его используете? Для меня это просто регистрация, а затем поиск и фильтрация по датам.
3. Если я сейчас использую nvarchar. (Если у меня еще есть время) Могу ли я изменить его на datetime, не затрагивая данные внутри?

Что я уже пробовал:

Я использую это только потому, что не смог получить pass преобразование не удалось при преобразовании даты и/или времени из символьной строки при вставке datetime.
У меня мало времени, чтобы закончить этот проект.

1 Ответов

Рейтинг:
12

0x01AA

Для меня это не выход. Вы просто перемещаете проблемы в другой раздел вашего приложения, Более того, вам нужно бороться с этими "неопределенными" датами в каждом месте, которое вы выбираете/обновляете базу данных.

Почему бы не использовать DateTimePicker что действительно проверяет входные данные?

Кстати: не используйте пользовательский ввод непосредственно для построения Вашего SQL-оператора. Используйте параметризованный запрос, чтобы избежать SQL-инъекции.
Надеюсь, это поможет.