【问题标题】:DateTime Format set for the SQL Server or per database为 SQL Server 或每个数据库设置的日期时间格式
【发布时间】:2013-07-04 18:37:53
【问题描述】:

通过此代码:

var ciIL = CultureInfo.CreateSpecificCulture("he-IL");
var todayNow = DateTime.Now.ToString("g", ciIL );

DateTime 将以我的本地首选格式 (04/07/2013 20:00) 生成

这就是我为日期/时间设置 Windows 本地化格式的方式,也是我非常希望在 SQL Server 中设置它的方式(目前我使用的是 2012 SP1)

因此,如果以这种方式要求完全配置的 SQL Server 太复杂,我将接受一种方法,即需要设置每个新数据库。所以设置将针对每个数据库

问题是当我将日期设置为 dd/mm/yyyy 格式时,它会被 SQL 翻译,所以在 Management Studio 中它显示为 2013-04-07 20:00

但它返回到 ASP.NET C# 代码为:07/04/2013 20:00

我希望数据库按照我需要的样子而不使用转换方法查询它

我在当前数据库中的排序规则设置是:Hebrew_100_CI_AS

服务器设置为:Hebrew_100_CI_AI

【问题讨论】:

  • 数据库不会以特定格式存储数据 - 您应该将值 as 检索为 DateTime,然后根据需要进行格式化。

标签: c# asp.net sql-server database datetime


【解决方案1】:

并返回到 ASP.NET C# 代码为:07/04/2013 20:00

不,它会以DateTime 的形式返回到您的 .NET 代码中。你用它做什么是你的事。

您需要区分内在数据(日期和时间)和您可以选择的文本表示。尽可能使用内部数据类型,避免字符串转换,直到您真正需要它们。特别是,使用参数化 SQL 并将值保留为参数中的 DateTime 值。

您或许可以在设置中的某处设置 SQL Management Studio 如何显示数据,但从根本上说这不会影响您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2012-06-27
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多