Как правильно отформатировать дату и время в поле даты и времени на SQL-сервере? - PullRequest
7 голосов
/ 19 декабря 2009

У меня есть объект dateTime в C #, и я хочу сделать вставку в поле даты и времени SQL Server. Какой правильный формат для этого?

Ответы [ 3 ]

16 голосов
/ 19 декабря 2009

Правильный способ сделать это - использовать параметризованный запрос, , а не форматирование текста. Тогда вы можете просто использовать строго типизированный SqlDbType.DateTime параметр.

(Если для этого абсолютно необходимо использовать форматирование текста - , и я настоятельно рекомендую против этого - тогда что-то вроде yyyyMMdd HH:mm:ss должно сработать.)

3 голосов
/ 19 декабря 2009

Чтобы расширить ответ @ Люка, я столкнулся с этой ошибкой на днях.

Формат 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 константы.

См. Статья Джейми Томсона в блоге SQL

0 голосов
/ 19 декабря 2009

использовать SET DATEFORMAT

образец взял отсюда

     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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...