C# 我应该在代码隐藏中插入当前日期时间还是在数据库服务器中设置

C# 我应该在代码隐藏中插入当前日期时间还是在数据库服务器中设置,c#,.net,sql-server,datetime,insert,C#,.net,Sql Server,Datetime,Insert,我做了一张申请表。插入数据时,我会将订阅日期和时间放在那里。 我们应该将订阅日期时间放在代码后面还是放在mssql server中作为默认值。我认为这是个人的选择,尽管我总是使用当前时间戳在SQL中执行此类操作 我的理由是,为什么要费心在查询中添加一个实际上并不需要的额外参数,它只是您必须生成的额外数据 正如前面提到的,在codebehind中添加它可能有助于提高代码的可读性,但我不同意,当你调用一个过程时,你并不总是需要知道它存储了什么以及它是如何实现的,你只需要知道它是做什么的 作为一个例子

我做了一张申请表。插入数据时,我会将订阅日期和时间放在那里。
我们应该将订阅日期时间放在代码后面还是放在mssql server中作为默认值。

我认为这是个人的选择,尽管我总是使用
当前时间戳在SQL中执行此类操作

我的理由是,为什么要费心在查询中添加一个实际上并不需要的额外参数,它只是您必须生成的额外数据

正如前面提到的,在codebehind中添加它可能有助于提高代码的可读性,但我不同意,当你调用一个过程时,你并不总是需要知道它存储了什么以及它是如何实现的,你只需要知道它是做什么的

作为一个例子,我有很多过程来编辑数据库中的内容,作为一项辅助任务,它们还更新审计表,这样我就有了一个正在进行的工作的日志。任何程序员调用这些程序都不需要知道这一点,因为程序的主要功能是在主表中插入或编辑数据,生成的审计跟踪只是关于数据的数据,与程序员正在做的事情无关

如果我在代码隐藏中向每个SP添加所有审计参数,那么会有5-6个额外的参数,这会使我的代码隐藏变得混乱,使事情更加复杂


在您的场景中,将数据插入数据库的人是否需要知道插入数据的时间记录在数据库中?我猜可能不是这样,所以没有必要在codebehind中生成日期。

如果您在服务器中托管应用程序(共享托管),请尝试以UTC存储日期和时间。您可以使用GETUTCDATE()将日期时间存储为UTC。

为了代码可读性的目的,肯定是从代码后面。好的回答,我要补充的一点是,无论您在哪里生成日期时间戳,都值得使用UTC时间戳,这样您就不会遇到任何时区问题。当前的时间戳是什么?