为什么GETDATE()在SSMS和C#Microsoft.Practices.EnterpriseLibrary.Data上运行时会产生不同的结果?

为什么GETDATE()在SSMS和C#Microsoft.Practices.EnterpriseLibrary.Data上运行时会产生不同的结果?,c#,sql,asp.net,sql-server,date,C#,Sql,Asp.net,Sql Server,Date,在SSMS(SQL Server Management Studio)中的查询编辑器上执行时,与通过Microsoft.Practices.EnterpriseLibrary.Data通过Database.ExecuteOnQuery()函数执行时,会产生不同结果的原因是什么 此GETDATE()位于更新表中日期的存储过程中 美国开发人员在SSM上调试: =2016年4月11日上午11:43 我怀疑差异可能是因为+8偏移了GMT(我们的服务器位于GMT+8)它们运行的是相同的SP,但为什么G

在SSMS(SQL Server Management Studio)中的查询编辑器上执行时,与通过
Microsoft.Practices.EnterpriseLibrary.Data
通过
Database.ExecuteOnQuery()
函数执行时,会产生不同结果的原因是什么

此GETDATE()位于更新表中日期的存储过程中


美国开发人员在SSM上调试:

=2016年4月11日上午11:43


我怀疑差异可能是因为+8偏移了GMT(我们的服务器位于GMT+8)它们运行的是相同的SP,但为什么GETDATE()的结果不同呢

我们尝试了各种函数来获取当前日期,如:

  • GETUTCDATE()
  • 当前时间戳
  • GETDATE()
  • GETSYSTEMDATE()
但我们仍然有相同的结果

这个问题很奇怪,因为我没有向SP传递任何可能影响GETDATE()函数的值

如果您需要其他信息,请随时请求帮助解决此问题

其他信息(更新):

  • 承载ASP.Net页面服务器的服务器与SQL server数据库不同

也许可以尝试
SYSDATETIMEOFFSET()

因此,您可以检查不同的时区是否导致问题-如果是:


完整解决方案/所有学分:

由于两者都将在SQL Server上执行,因此结果将是相同的,但第二个结果将根据.Net当前区域性和数据格式返回和处理,在您的情况下,这两种格式似乎不同


如果您将.Net应用程序的区域性设置为其他类型,例如:ar sa,它将以Hijri格式显示数据,这将是完全不同的:)

可能是用户浏览器更正了日期时间,而不是后端发生了什么事?我不这么认为,调用SP的是后端C#。检查这个问题,特别是(非常长的)被接受的答案,也许它可以提供一些启示:@PeterB我认为这是不同的,因为特定的问答是针对ADO.Net的,但对于这个,我认为Microsoft.Practices.EnterpriseLibrary.Data至少可能有所不同。您能否发布如何从数据集中获取asp.net值的完整代码? EXEC [dbo].[SP_NameOfTheSPWithGetDate]()
Database SampleDB;
SampleDB.ExecuteNonQuery('[dbo].[SP_NameOfTheSPWithGetDate]');