2016-06-12 9 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; 

しかし、私はまだちょうど日付 "2016年6月12日"、ない時間を受けています。

+0

よく 'DateTime.Now'は現在の日付と時刻を示します。日付部分だけを必要としないのであれば、なぜ' Date'プロパティを使用していますか?そして、 'DATE'フィールドのタイプは何ですか? –

+0

@MattRowland:私はこの質問の反対を質問していると思います。 –

+0

@JonSkeetああ、私は今それを見る。 –

答えて

3

アクセスSQLは、現在の日付と時刻を返しますNow()という名前の関数をサポートしています。

したがって、c#で同等の値を導出する代わりにdbエンジンでNow()を使用し、その値をパラメータとしてINSERTに入力する方が簡単です。

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

DateJet reserved wordです。その名前をINSERTの角かっこで囲んで、Date()関数の代わりにオブジェクト名を意味するdbエンジンを通知します。

+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); 
関連する問題