输入带有日期的SQL记录使用了错误的日期格式

输入带有日期的SQL记录使用了错误的日期格式,sql,asp.net,sql-server,asp.net-mvc,date,Sql,Asp.net,Sql Server,Asp.net Mvc,Date,使用:实体框架,Sql Server 2014。 我的应用程序区域设置/全球化尚未设置 我的问题是,; 当处理应用程序中的所有日期时,它们采用正确的英国日期格式:-dd/mm/yyyy 但是,当我使用这些日期并将其输入我的SQL数据库(在共享托管SQL Server上)时,它们将以美国格式mm/dd/yyyy输入 我如何更改它,使日期以英国格式进入数据库?请记住,我无法触摸服务器上的设置 我正在考虑使用区域设置或web.config中的连接字符串,但我在网上找不到任何确切的信息可以肯定地告诉我

使用:实体框架,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; }
public int由{get;set;}创建
public System.DateTime CreatedDate{get;set;}
公共可为null的ModifiedBy{get;set;}
公共可为空的ModifiedDate{get;set;}
已启用公共bool的{get;set;}
公共可为空的ProductSettingId{get;set;}
公共可为空的ProductAreaMinimumPremiumId{get;set;}
public int ProductId{get;set;}
public int StatusId{get;set;}
公共可为空的接收日期{get;set;}
公共可为空的总{get;set;}
公共可空Ipt{get;set;}
我对所有DateTime属性都有问题


如果用户界面/应用程序中的日期为2017年1月12日,则数据库中的日期为2017年12月1日,而应为2017年1月12日。

我必须向大家道歉!事实证明,我的问题在于应用程序文化/区域设置

加入:

 <configuration>
  <system.web>
    <globalization
      culture="en-GB"
      uiCulture="en-GB"
    />
  </system.web>
</configuration>

这是本地web应用程序配置--您需要更改数据库服务器。您是将其保存为.net DateTime对象,还是仅使用字符串?@j.v。它是EF中的DateTime变量。数据库中的日期时间。我对此表示怀疑。。。很快就发生了一场争吵。但在这种情况下,中间有一个自我完成的通用程序,它把所有东西转换成字符串。您看到的字符串不是实际值!!它是值的格式化文本表示形式
.Net DateTime
以类型安全的方式映射到
sql DateTime
。不应该有任何中间状态需要您操心…上次编辑后显示的代码没有显示,您实际如何与RDBMS通信数据。你看过我贴的链接了吗。还涉及可为空的属性。。。
  ALTER LOGIN {{MY LOGIN}} WITH DEFAULT_LANGUAGE=British