2016-06-12 3 views
0

Я могу узнать, как получить текущую дату, а не комбинацию текущей даты и времени. Я не нашел подходящего решения.Получить текущую дату и время, используя C# для доступа ms

cmd.CommandText = "INSERT INTO [Table] (DATE) VALUES (@date)"; 

var pDate = new OleDbParameter("@date", SqlDbType.DateTimeOffset); 
      pDate.Value = DateTime.Now.Date; 
      cmd.Parameters.Add(pDate); 

Любая помощь будет очень признательна.

EDIT: Также пробовал:

var dateAndTime = DateTime.Now; 
var date = dateAndTime.Date; 

Но я до сих пор просто получать дату "6/12/2016", а не время.

+0

Ну 'DateTime.Now' дает вам текущую дату и время - почему вы используете свойство' Date', если вам не нужна только часть даты? И каков тип поля 'DATE'? –

+0

@MattRowland: Я думаю, что этот вопрос требует противоположного этого вопроса. –

+0

@JonSkeet А я вижу это сейчас. –

ответ

3

Access SQL поддерживает функцию с именем Now(), которая возвращает текущую дату и время.

Таким образом, было бы проще, если бы двигатель db использовал Now() вместо получения эквивалентного значения в C#, а затем передал это значение вашему INSERT в качестве параметра.

cmd.CommandText = "INSERT INTO [Table] ([DATE]) VALUES (Now())"; 

Примечание Date является Jet reserved word. Приложите это имя в квадратных скобках в поле INSERT, чтобы сигнализировать о дБ-движке, что означает имя объекта вместо функции Date().

+1

Спасибо! Работает как шарм. – Nyprez

0

Попробуйте использовать тип данных, известный Access:

cmd.CommandText = "INSERT INTO [Table] (DATE) VALUES (@date)"; 

var pDate = new OleDbParameter("@date", SqlDbType.DateTime); 
      pDate.Value = DateTime.Now; 
      cmd.Parameters.Add(pDate); 
Смежные вопросы