INSERT コマンドと executenonquery を使用して現在の日付/時刻を SQL Server テーブルに追加する推奨される方法は何ですか? 私は何かを期待しています...
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
INSERT コマンドと executenonquery を使用して現在の日付/時刻を SQL Server テーブルに追加する推奨される方法は何ですか? 私は何かを期待しています...
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
まず、列には DateTime データ型を使用する必要があります。次に、その列で DefaultValue=getdate() 制約を使用できるため、DB でのみ定義されます。アプリケーションは、それを挿入する必要はありません。
日付/時刻パラメーターは必要ありません。
ストアドプロシージャが呼び出されるたびに、サーバーレベルで日付/時刻フィールドを更新するだけです。
日付/時刻フィールドを現在の時刻以外のものに更新できるようにする場合は、ストアドプロシージャにオプションのパラメータを追加できます。このようにして、サーバーはnullの場合にgetdate()に更新するか、特定の時刻にする必要がある場合にアプリケーションから渡すことができます。
Tomasがサーバーレベルで時刻を設定することの重要性を強調した理由は、タイムゾーンやその他の要因によるものです。
cmd.Parameters("@theDate").Value = Now()
どうですか...
cmd.Parameters.Add("@theDate", SqlDbType.DateTime)
cmd.Parameters("@theDate").Value = DateTime.Now
current_timestamp
テキストをSQLコードに直接配置して、パラメーターを完全にスキップできるかどうかを確認します。それができない場合は、DateTime.Now を使用するだけです。