在SQL Server中将DateTime存储为字符串的最佳实践

时间:2016-09-08 23:50:12

标签: c# sql-server datetime

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

这是一个遗留项目,显然这些人在ToString()实例上简单地调用它DateTime,这将根据机器的文化设置格式化日期时间;并且在检索日期时间时,一个简单的DateTime.Parse()将使用相同的文化设置正确地解析它。

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

我认为更好的方法是定义DateTime格式的统一标准(例如dd / mm / yyyy),以便数据可以在不同的机器上运行。但是,我想知道这种方法是否存在任何缺点或意外问题,并非常感谢您的见解!

1 个答案:

答案 0 :(得分:3)

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

这种格式是标准的,几乎完全明确(​​YYYYDDMM几乎是未知的格式)。它也可以正确排序,可用于between - 类型比较。