Как вставить или обновить данные в поле даты и времени в mssql2005 - PullRequest
0 голосов
/ 08 марта 2011

У меня есть текстовое поле, которое отображает дату как 01-May-2011, но база данных может быть в формате datetime ... как ввести дату в столбце даты и времени базы данных. ..

как получить sqlquery для этого?

Ответы [ 5 ]

1 голос
/ 08 марта 2011

Вы можете преобразовать этот формат в DateTime, как это

   string dateString = "01-May-2011";
   string format = "dd-MMM-yyyy";
   var result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

если вы используете LINQ to SQL или даже ADO с параметром типа DateTime, преобразование в формат, который понимает SQL, будет выполнено автоматически для вас.

Если вы строите SQL путем конкатенации строки вручную (не рекомендуется!), Вы должны попытаться преобразовать ее в строку в формате 'yyyyMMdddd' (исправлено согласно комментарию AdaTheDev, обратите внимание на одинарные кавычки). Другие форматы могут распознаваться или не распознаваться sql в зависимости от языковых настроек как на вашем клиенте, так и на вашем SQL Server

0 голосов
/ 08 марта 2011

Следует помнить, что даты без времени будут интерпретироваться как 1 мая 2011 г., 12:00. То есть, без указания времени, SQL Server всегда будет устанавливать время в полночь. Так что если у вас есть только дата в виде поля и вы хотите записи с 1 мая, вы не можете сделать

WHERE datefield = '5/1/2011'

Здесь будут найдены записи, где полем даты является 1 мая, полночь. Вы должны сделать

WHERE datefield >= '5/1/2011' and datefield < '5/2/2011'

Это действительно не относится к вашему вопросу, но я видел, как это сбивает с толку МНОГО людей. Я в том числе.

0 голосов
/ 08 марта 2011

Передайте значение поля как nvarchar в базу данных и используйте следующее для приведения его к datetime.

Declare @dt nvarchar(20)
SET @dt = '01-May-2011'
select cast(@dt as datetime)
0 голосов
/ 08 марта 2011

Просто конвертируйте его в dateTime

DateTime _ConvertedDate = Convert.ToDateTime(txtDate.Text);

, это преобразует в datetime

0 голосов
/ 08 марта 2011

SQL Server довольно хорош для получения значений даты и времени. Если вы передаете дату в качестве параметра, вы можете поместить ее в кавычки ('01-май-2011 ') и игнорировать время. База данных автоматически заполнит время по умолчанию, так что вам не придется об этом беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...