Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL Server中将日期时间存储为字符串的最佳实践_C#_Sql Server_Datetime - Fatal编程技术网

C# 在SQL Server中将日期时间存储为字符串的最佳实践

C# 在SQL Server中将日期时间存储为字符串的最佳实践,c#,sql-server,datetime,C#,Sql Server,Datetime,假设我必须在我的web应用程序中的SQL Server中将DateTime值存储为string。此web应用程序将部署到LB后面的多个服务器,并共享同一个DB服务器 这是一个遗留项目,显然是由开发人员在DateTime实例上简单地称之为ToString(),这将根据机器的区域设置格式化DateTime;在检索日期时间时,一个简单的datetime.Parse()将使用相同的区域性设置隐式地正确解析它 但是我认为这不是一个好方法,因为这会在数据和机器的区域性设置之间产生依赖关系,这意味着如果多个开

假设我必须在我的web应用程序中的SQL Server中将
DateTime
值存储为
string
。此web应用程序将部署到LB后面的多个服务器,并共享同一个DB服务器

这是一个遗留项目,显然是由开发人员在
DateTime
实例上简单地称之为
ToString()
,这将根据机器的区域设置格式化DateTime;在检索日期时间时,一个简单的
datetime.Parse()
将使用相同的区域性设置隐式地正确解析它

但是我认为这不是一个好方法,因为这会在数据和机器的区域性设置之间产生依赖关系,这意味着如果多个开发者具有不同的时区设置,他们将以不同的格式插入
DateTime
,当这些值被解析回
DateTime
时,这将出错


我认为更好的方法是定义一个统一的标准,格式为
日期时间
(例如dd/mm/yyyy),以便数据可以在不同的机器上工作。然而,我想知道这种方法是否有任何缺点或意外的问题,并将非常感谢您的洞察力

将日期/时间存储为字符串的最佳格式是ISO 8601标准格式,YYYY-MM-DD或YYYYMMDD(我更喜欢带有连字符的版本,因为我是人)


此格式是标准格式,几乎完全没有歧义(YYYYDDMM作为一种格式几乎是未知的)。它还可以正确排序,并可用于
之间的
类型比较。

将日期/时间存储为字符串的最佳格式是ISO 8601标准格式,YYYY-MM-DD或YYYYMMDD(我更喜欢带有连字符的版本,因为我是人)


此格式是标准格式,几乎完全没有歧义(YYYYDDMM作为一种格式几乎是未知的)。它还可以正确排序,并可用于
之间的
类型比较。

谢谢戈登,这很有意义!!:)“因为我是一个人”。。。所有相反的证据。@johncapelletti。哈哈,但你不认识我。谢谢戈登,这很有道理!!:)“因为我是一个人”。。。所有相反的证据。@johncapelletti。哈哈,但你不认识我。我会将日期时间存储为
DateTimeOffset
,然后在表中创建一个计算列,自动返回正确的字符串表示形式。使用
DateTimeOffset
保留时区信息,以防您的开发人员位于不同的区域。我会将日期时间存储为
DateTimeOffset
,然后在表中创建一个计算列,自动返回正确的字符串表示形式。使用
DateTimeOffset
保留时区信息,以防您的开发者位于不同的区域。