【问题标题】:Why Datetime format is different in Database and Datatable while executing same query为什么执行相同查询时数据库和数据表中的日期时间格式不同
【发布时间】:2017-11-16 11:14:37
【问题描述】:

请帮忙,

在数据库中执行查询时显示如下。

Database

在将相同的查询复制到 DataTable 中时,DateTime 列的形式正在发生变化。

DataTable

【问题讨论】:

  • 日期时间没有格式。只有日期时间的字符串表示具有格式。
  • @ZoharPeled 好的,那么我如何将确切的 DateTime 字符串从数据库复制到数据表。请帮忙。
  • “复制”是什么意思?只要您将数据类型保留在datetime 中,它的字符串表示就无关紧要。如果你想以某种格式显示,应该不会太难。

标签: c# sql database datetime datatable


【解决方案1】:

您的数据库以标准化的规范格式显示,并且您的数据表通过线程的任何文化设置显示,除非您指定不同的格式。

别担心。这就是应该这样做的方式。如果您想要特定格式,仅在查看数据表时更改它,然后使用“ToString()”方法之一来显示日期和时间。不要管你的表和查询。

Reference on how DateTime is stored, used, and displayed

【讨论】:

    【解决方案2】:

    数据库将在用户界面中显示数据。根据指定的文化和区域设置,同时 另一方面,Dot net Datatable 将使用 Thread 的 currentUICulture 属性显示日期格式。

    所以你有以下选择:

    1) 在从表/视图中选择时,使用Convert 从 SQL 服务器获取您的格式。

    2) 在您的数据表中添加一个新列并使用DateTime.ToString("Format") 方法对其进行格式化并填充它。

    【讨论】:

    • 两者都以没有任何格式的二进制表示形式存储该日期(不要混淆哪些部分是“日”和哪些部分是“月”)。当您显示该值时,它会以特定方式格式化以从内部二进制形式转换为字符串。
    • @HansKesting 你是对的。不知何故,我的想法传达了别的东西。已经修改了答案..
    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 2012-09-17
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多