[英]Best practice for storing DateTime as string in SQL Server
假设我必须在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
比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.