#c# #tsql #datetime
#c# #tsql #дата-время
Вопрос:
У меня проблема с форматом datetime для C # и T-SQL.
- Приложение C # использует формат DD.MM.YYYY HH.mm.SS
- T-SQL использует формат MM DD YYYY HH.mm.SS
Очевидно, что T-SQL возвращает Error converting data type nvarchar to datetime.
ошибку.
Есть ли способ проверить и преобразовать формат datetime на стороне SQL? Я бы хотел, чтобы T-SQL мог использовать формат DD.MM.YYY.
Спасибо.
Комментарии:
1. T-SQL не использует никакого форматирования строк — a
DateTime
являетсяDateTime
DateTime
и не имеет никакого связанного с ним форматирования. Вы должны использовать либо параметризованные запросы, либо, если вам действительно нужна дата в строковом формате, используйте стандартный формат ISO-8601YYYYMMDD
(YYYYMMDDTHH:MM:SS
или, ,,)
Ответ №1:
Используйте параметризованные запросы, чтобы избежать такого рода проблем.
Когда вы создаете свой SQL в виде строки для передачи на SQL Server, вы не только сталкиваетесь с такого рода проблемами, но также можете подвергать себя SQL-инъекции.
С параметризованными запросами вы бы передавали DateTime
значение, и библиотека DB поступила бы правильно.
Форматы не играют роли, поскольку они используются только для отображения.
Комментарии:
1. Я использую параметры: sCommand. Параметры. AddWithValue(«@datetime_from», DatetimeFrom);
2. @feronovak — Какой тип
DatetimeFrom
? Можете ли вы опубликовать свой полный код?