【问题标题】:SQL Server stores the date in the format specified in the regional settingSQL Server 以区域设置中指定的格式存储日期
【发布时间】:2011-03-16 09:30:50
【问题描述】:

我的电脑区域设置是英国英语格式。

我正在将美国格式的日期作为字符串从我的程序保存到 SQL Sever 2008 企业版。

但是当我查看表格时,我看到日期已以英国格式保存。表的数据类型为nvarchar2000)

简而言之,我想以美国格式保存日期,而不考虑区域设置。

谢谢 苏杰

【问题讨论】:

  • 你想保存日期为 datetime/date-s,只是你还不知道

标签: c# sql-server


【解决方案1】:

既然你保存到 nvarchar 那么你将无法从 SQL Server 控制它,

所以我打赌你的机会是在保存之前更改日期

你可以:

var ci = new CultureInfo("en-US");// i think en-gb is for united kingdom but not sure
fieldvalue = yourdate.ToString("d", ci);

然后你保存 fieldvalue..

如果您不确定要使用哪种文化,但知道您希望字符串在 sql server 中如何显示,您也可以使用ToString("MM/DD/YYYY"); 将日期转换为特定格式。

【讨论】:

  • 我想以美国(“en-US”)格式保存日期,而不考虑区域设置,所以如果用户的区域设置具有不同的日期格式,例如英国/丹麦,我仍然想要以美国格式保存日期。 (月/日/年)
  • 我编辑了我的答案以保存为美国格式.. 尽管机器有什么区域设置,这将起作用......
  • System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US"); DateTime dt = new DateTime(dtDefaultValuePicker.Value.Year, dtDefaultValuePicker.Value.Month, dtDefaultValuePicker.Value.Day);字符串 str = dt.ToString(ci);我正在保存保存美国格式日期的字符串,但是当我看到 db 表时,我看到的是英国格式的日期。
  • 您可能想检查如何将值保存到 db ,也许您使用的东西会改变值...
猜你喜欢
  • 2011-01-22
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 2015-09-16
相关资源
最近更新 更多