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

时间:2017-01-30 15:41:55

标签: sql asp.net sql-server asp.net-mvc date

使用:实体框架,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属性的问题。

如果UI / app中的日期是12/01/2017,它将在2017年12月1日进入数据库,而应该是2017年1月12日。

1 个答案:

答案 0 :(得分:1)

我必须向所有人道歉!事实证明我的问题在于应用文化/语言环境。

添加:

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

那很有效。

我确实在我的数据库中运行了这一行,首先我不知道这些是否一起排除了它。

  ALTER LOGIN {{MY LOGIN}} WITH DEFAULT_LANGUAGE=British