为什么GETDATE()在SSMS和C#Microsoft.Practices.EnterpriseLibrary.Data上运行时会产生不同的结果?
在SSMS(SQL Server Management Studio)中的查询编辑器上执行时,与通过为什么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
Microsoft.Practices.EnterpriseLibrary.Data
通过Database.ExecuteOnQuery()
函数执行时,会产生不同结果的原因是什么
此GETDATE()位于更新表中日期的存储过程中
美国开发人员在SSM上调试: =2016年4月11日上午11:43
我怀疑差异可能是因为+8偏移了GMT(我们的服务器位于GMT+8)它们运行的是相同的SP,但为什么GETDATE()的结果不同呢 我们尝试了各种函数来获取当前日期,如:
GETUTCDATE()
当前时间戳
GETDATE()
GETSYSTEMDATE()
- 承载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]');