在SQL Server中存储DateTime作为字符串的最佳实践
本文关键字:字符串 最佳 Server SQL 存储 DateTime | 更新日期: 2023-09-27 18:06:12
假设我必须在我的web应用程序的SQL Server中存储DateTime
值为string
。这个web应用程序将被部署到LB后面的多个服务器上,并共享同一个DB服务器。
这是一个遗留项目,显然这些家伙开发它只是在DateTime
实例上称为ToString()
,这将根据机器的文化设置格式化日期时间;当检索日期时间时,简单的DateTime.Parse()
将使用相同的区域性隐式设置正确解析它。
然而,我不认为这是一个好方法,因为这会在数据和机器的文化设置之间创建依赖关系,这意味着如果多个开发人员具有不同的时区设置,他们将以不同的格式插入DateTime
,这将在稍后将这些值解析回DateTime
时出错。
我认为更好的方法是定义一个统一的标准的DateTime
格式(例如dd/mm/yyyy),这样数据可以跨不同的机器工作。但是,我想知道这种方法是否有任何缺点或意想不到的问题,并将非常感谢您的洞察力!
将日期/时间存储为字符串的最佳格式是ISO 8601标准格式,YYYY-MM-DD或YYYYMMDD(我更喜欢带有连字符的版本,因为我是人类)。
该格式是标准的,几乎完全明确(YYYYDDMM作为一种格式几乎是未知的)。它还可以正确排序,并可用于between
类型的比较。