【发布时间】:2017-01-30 15:41:54
【问题描述】:
使用:实体框架,Sql Server 2014。 我的应用程序区域设置/全球化尚未设置(还)。
我的问题是这样的; 在处理应用程序周围的日期时,它们采用正确的英国日期格式:- dd/mm/yyyy
但是,当我使用这些日期并将它们输入我的 SQL 数据库(在共享托管 SQL Server 上)时,它们以美国格式 mm/dd/yyyy 输入。
如何更改它,以便日期以英国格式进入数据库?请记住,我无法触摸服务器上的设置。
我正在考虑使用语言环境设置或 web.config 中的连接字符串,但我无法在网上找到任何可以确定的确切信息。
我以为这样可以解决问题,但还没有尝试过。
<configuration>
<system.web>
<globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-GB"
uiCulture="en-GB"
/>
</system.web>
</configuration>
编辑:这是 EF 生成的代码
public int CreatedBy { get; set; }
public System.DateTime CreatedDate { get; set; }
public Nullable<int> ModifiedBy { get; set; }
public Nullable<System.DateTime> ModifiedDate { get; set; }
public bool Enabled { get; set; }
public Nullable<int> ProductSettingId { get; set; }
public Nullable<int> ProductAreaMinimumPremiumId { get; set; }
public int ProductId { get; set; }
public int StatusId { get; set; }
public Nullable<System.DateTime> InceptionDate { get; set; }
public Nullable<decimal> Gross { get; set; }
public Nullable<decimal> Ipt { get; set; }
我的所有 DateTime 属性都有问题。
如果用户界面/应用程序中的日期是 12/01/2017,它将作为 2017 年 12 月 1 日进入数据库,而应该是 2017 年 1 月 12 日。
【问题讨论】:
-
这是本地 Web 应用程序配置 -- 您需要更改数据库服务器。
-
您是将其保存为 .net DateTime 对象,还是仅使用字符串?
-
@j.v.它是 EF 中的 DateTime 变量。数据库中的日期时间。
-
我对此表示怀疑……不久之后就有了somehow related question。但在这种情况下,中间有一个自行完成的通用过程,它将所有内容都转换为字符串。 您看到的字符串不是实际值!! 它是值的格式化文本表示。
.Net-DateTime以类型安全的方式映射到sql-DATETIME。不应该有任何中间状态,你应该担心...... -
您在最后一次编辑后显示的代码未显示您如何与 RDBMS 实际通信数据。你有没有看过我发布的链接。还涉及到可为空的属性...
标签: sql asp.net sql-server asp.net-mvc date