使用参数的 SQLServer INSERT getdate() 函数
使用 INSERT 命令和executenonquery 将当前日期/时间添加到 SQL Server 表中的首选方法是什么?我期待着类似的事情...
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
What is the preferred method of adding the current date/time into an SQL Server table with INSERT Command and executenonquery? I'm expecting something like ...
cmd.Parameters.Add("@theDate", SqlDbType.VarChar, 20)
cmd.Parameters("@theDate").Value = "getdate()"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
首先,您应该为列使用 DateTime 数据类型。其次,在该列上您可以使用 DefaultValue=getdate() 约束,因此它仅在数据库中定义。应用程序不需要插入它。
First of all, you should use DateTime data type for column. Second, on that column you can use DefaultValue=getdate() constraint, so it is defined only in DB. Application do not need to insert it.
怎么样...
How about...
不需要日期/时间参数。
每当调用存储过程时,您只需更新服务器级别的日期/时间字段。
如果您希望能够将日期/时间字段更新为当前时间以外的其他内容,那么您可以在存储过程中添加可选参数;这样,当它为空时,服务器可以将其更新为 getdate(),或者当需要特定时间时,您可以从应用程序传递它。
Tomas 之所以强调在服务器级别设置时间的重要性,是因为时区和其他因素。
The date/time parameter is NOT needed.
Anytime the stored procedure is called, you just update the date/time field at the server level.
If you want to be able to update the date/time field to something OTHER than the current time then you can add an optional parameter on the stored procedure; this way you server can update it to getdate() when it is null, or you can pass it from the application when it needs to be a specific time.
The reason Tomas emphasized the importance of setting the time at the server level is because of time zones and other factors.
我想看看是否可以将文本
current_timestamp
直接放入 sql 代码中,并完全跳过该参数。如果不能,那么是时候使用 DateTime.Now 了。I would look to see if you can place the text
current_timestamp
directly into the sql code, and skip the parameter entirely. If you can't, then it's time to just use DateTime.Now.