У меня есть объект dateTime в C#, и я хочу сделать вставку в поле datetime SQL Server. Каков правильный формат для этого?Каков правильный способ форматирования datetime в поле datetime SQL-сервера
ответ
Правильный способ сделать это с помощью параметризованного запроса, не форматирование текста. Затем вы можете просто использовать строго типизированный параметр SqlDbType.DateTime
.
(Если вы абсолютно необходимо использовать форматирование текста, чтобы сделать это - и я настоятельно рекомендую против него. - тогда что-то вроде yyyyMMdd HH:mm:ss
должен сделать трюк)
не будет ли я передавать строку в параметризованный запрос и иметь такую же проблему? – leora
На самом деле формат, который гарантированно работает на любом SQL Server, независимо от языковых и региональных настроек, будет 'yyyyMMdd HH: mm: ss' (без тире - это вызвало проблемы с определенными языковыми настройками) –
@marc_s: обновил ответ, чтобы использовать формат «безопасный в любом случае». – LukeH
использование SET DATEFORMAT
образец took from here
SET NOCOUNT ON
CREATE TABLE X(EXAMPLE INT, D SMALLDATETIME)
-- EXAMPLE 1
SET DATEFORMAT MDY
INSERT INTO X VALUES (1, '10/30/56')
-- EXAMPLE 2
SET DATEFORMAT YDM
INSERT INTO X VALUES (2, '56/31/10')
-- EXAMPLE 3
SET DATEFORMAT YMD
INSERT INTO X VALUES (3, '56/10/31')
SELECT * FROM X
Чтобы расширить ответ на @ Luke, я наткнулся на эту ошибку только на днях.
Формат yyyy-MM-dd HH:mm:ss
имеет локализованный вопрос/языка на SQL Server 2005 (пример французский), но фиксируется в SQL 2008:
Таким образом, не используйте этот формат: yyyy-MM-dd HH:mm:ss
(пространство сепаратора).
использовать только: yyyy-MM-ddTHH:mm:ss
("T" разделитель) или yyyyMMdd HH:mm:ss
(без тира разделителей)
Важен, если вы генерируете скрипты, которые включают в себя datetime
константы.
- 1. Правильный способ разбора и форматирования объекта DateTime?
- 2. Правильный способ преобразования строки DateTime в timestamp
- 3. Каков правильный способ передачи переменных datetime в запрос Doctrine?
- 4. DateTime форматирования .Net C#
- 5. Python Строка форматирования DateTime
- 6. два способа форматирования DateTime
- 7. Каков наилучший способ запроса поля datetime в поле даты?
- 8. Ошибка форматирования DateTime?
- 9. правильный способ получить текущий DateTime в PHP
- 10. Каков правильный способ форматирования «is_a? Integer»?
- 11. Datetime форматирования/настройки в EJS
- 12. Как обновить поле datetime
- 13. MySQL: Вставить datetime в другое поле datetime
- 14. Сравнение объектов datetime. Правильный путь
- 15. C# Правильный способ изменить значение DateTime?
- 16. преобразовать varchar в поле datetime
- 17. Поддерживаемый язык DateTime для форматирования?
- 18. DateTime в поле подписи
- 19. Джанго Postgres DATETIME поле для Python DATETIME
- 20. Сравните поле mysql datetime со строкой datetime
- 21. Как вывести поле DateTime из базы данных без форматирования SSRS?
- 22. объект форматирования DateTime, уважая Locale :: getDefault()
- 23. Правильный запрос, чтобы получить datetime
- 24. DateTime область конкретных форматирования в WPF ListView
- 25. Google DateTime Class - Дата форматирования В Java
- 26. Формат DateTime в текстовом поле в рельсах
- 27. Добавить поле nchar в DateTime в Informix
- 28. Как инициализировать поле DateTime?
- 29. MySQL DateTime поле
- 30. AgeCalendar Datetime поле Issue
Вы, вероятно, не должны быть построения строк SQL в коде. Вместо этого вы должны посмотреть на использование хранимых процедур, параметризованных запросов или ORM. Любой из них разрешит вашу проблему с форматированием, поскольку вы просто передаете объект, вам не нужно выполнять форматирование строк. –