这让我很不爽!
数据层中的'british'
数据库返回2009/10/01 (这是yyyy/MM/dd),步骤4的结果是Jan2009?
web服务器的区域设置是联合王国,没有<全球化.在machine.config中,IIS中的净全球化设置为uiCulture=en区域性=en-GB,我甚至在站点的web.config中将其设置为
这是一个经典的“在我的开发机器上工作”。但是,当部署到生产场景中时,就会被轮询。我可能错过了什么?
编辑
因此,ASP.NET应用程序用于连接到SQl Server 2008的登录似乎获得了一个美国日期时间,尽管在登录属性中,默认语言设置为'British‘。
这个问题发生在TSQL中:
SELECT
DATEPART(month, CAST('2009.02.01' AS DATETIME))
,DATEPART(month, CONVERT(DATETIME, '2009.02.01', 102))windows集成登录(管理员)的输出,默认语言设置为'English‘
2 2
默认语言设置为“英式英语”的ASP.NET使用的Server登录输出
[经]1 2
发布于 2009-11-26 13:01:53
检查数据库本身及其服务器上的区域设置,根据设置的不同,日期将相应地格式化为区域设置。我怀疑数据库服务器可能设置为US English - Poke在db服务器本身的区域设置中。
希望这能帮上忙最好的问好汤姆。
发布于 2009-11-26 12:46:34
我会感兴趣地看到从命令/reader/适配器中获取日期的代码--如果数据库列被键入为datetime,那么连线上的内容实际上不是--实际上是"2009/10/01“--它是一个二进制数字(就像大多数日期都在线路上一样)。因此,不存在模棱两可的问题。
我希望在某个地方,您将它视为字符串(可能是一些Parse) --这不应该是必要的。如果是的话,您不是将它作为一个SELECT,而是作为一个[n][var]char(x)。
发布于 2009-11-26 13:22:45
使用Management检查存储在数据库中的值。在通用数据格式中,YYYYMMDD :MM:SS.mmm (2009-01-05T10:12:55.001)和YYYYMMDD (20090105)。无论数据库使用哪种语言环境,解析的这些格式都是相同的。
https://stackoverflow.com/questions/1803455
复制相似问题