假设我必须在我的Web应用程序的SQL Server中将DateTime
值存储为string
。此Web应用程序将部署到LB后面的多个服务器并共享同一个数据库服务器。
这是一个遗留项目,显然这些人在ToString()
实例上简单地调用它DateTime
,这将根据机器的文化设置格式化日期时间;并且在检索日期时间时,一个简单的DateTime.Parse()
将使用相同的文化设置正确地解析它。
但是我不相信这是一个好方法,因为这会在数据和机器的文化设置之间产生依赖关系,这意味着多个开发者不同时区设置他们将以不同的格式插入DateTime
,以后这些值被解析回DateTime
时会出错。
我认为更好的方法是定义DateTime
格式的统一标准(例如dd / mm / yyyy),以便数据可以在不同的机器上运行。但是,我想知道这种方法是否存在任何缺点或意外问题,并非常感谢您的见解!
答案 0 :(得分:3)
将日期/时间存储为字符串的最佳格式是ISO 8601标准格式,YYYY-MM-DD或YYYYMMDD(我更喜欢带连字符的版本,因为我是一个人)。
这种格式是标准的,几乎完全明确(YYYYDDMM几乎是未知的格式)。它也可以正确排序,可用于between
- 类型比较。