【问题标题】:Stored Procedure results different in SQL and C#SQL 和 C# 中的存储过程结果不同
【发布时间】:2018-05-21 13:43:34
【问题描述】:

我在我的代码中调用了一个存储过程,结果被加载到一个数据表中,这是数据表中的一列。

但是,日期的时间部分不应该在那里。在存储过程中,我这样做:“Cast(loan.OpenedDate as date) as OpenedDate”。在 SQL 中,如果我执行这个存储过程,它会正确显示,如下所示。

如果程序相同,为什么结果会不同?

【问题讨论】:

  • 因为 c# 没有仅日期类型,所以它添加了时间
  • 两张表的结果完全相同。如果没有使用小时、分钟和秒,则 DateTime 对象默认为一天开始时的午夜。您只是显示相同的日期,有和没有小时、分钟、秒。
  • 说这些结果是不同的,就像从 2 个不同的角度看一辆汽车并声称它们是不同的汽车。

标签: c# sql stored-procedures


【解决方案1】:

C# 中没有 Date 类型,只有 DateTime,因此您的 SQL Date 结果正在转换为 DateTime。

【讨论】:

    【解决方案2】:

    那是因为在代码中它的 DataType 为 DateTime 因为 C# 没有 Date DataType

    所以你要做的是使用DateTime.ToShortDateString 方法

    例如

    DateTime dateToDisplay = new DateTime(2009, 6, 1, 8, 42, 50);
    dateToDisplay.ToShortDateString()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 2016-08-29
      • 1970-01-01
      相关资源
      最近更新 更多