C# 从WCF服务获取无效的日期时间值

C# 从WCF服务获取无效的日期时间值,c#,sql-server,wcf,datetime,serialization,C#,Sql Server,Wcf,Datetime,Serialization,我有一个WCF服务和一个windows应用程序,都在不同的时区。现在,这个windows应用程序通过WCF服务保存和检索数据 当我对数据类型为datetime的logtime列的表执行大容量插入时,我能够将此本地datetime保存在数据库中,但当我尝试检索此表时,它给出了logtime列的所有错误值 发现了许多类似的问题,但我无法实现UTC时间,因为我所指的表包含1000条记录,每5-10秒更新一次 是否有任何方法可以停止WCF服务完成的此自动日期时间转换 请指导。这是什么意思:“它给出了所有

我有一个WCF服务和一个windows应用程序,都在不同的时区。现在,这个windows应用程序通过WCF服务保存和检索数据

当我对数据类型为datetime的logtime列的表执行大容量插入时,我能够将此本地datetime保存在数据库中,但当我尝试检索此表时,它给出了logtime列的所有错误值

发现了许多类似的问题,但我无法实现UTC时间,因为我所指的表包含1000条记录,每5-10秒更新一次

是否有任何方法可以停止WCF服务完成的此自动日期时间转换

请指导。

这是什么意思:“它给出了所有错误的logtime列值。”时间是数据库服务器的本地时间吗?那不是你想要的

我假设您希望logtime列是客户机的时区。是这样吗?我还假设,由于没有指定,您正在使用SQL Server中的默认值GetDate()设置logtime列。由于没有指定,我还假设您正在使用SQL Server

如果要使用客户端的时区,则有几个选项:

  • 将数据库服务器的时区更改为与客户端计算机相同的时区
  • 将时间作为参数传递给WCF服务。(我假设WCF服务在与数据库服务器位于同一时区的服务器上运行。)
  • 保持原样,但在检索数据时转换到正确的时区
  • 可能还有更多的选择,但如果你能澄清我所做的假设,那会很有帮助


    您所说的“WCF服务完成的自动日期时间转换”是什么意思?它是否使用其本地时区作为时间?如果是这样,那么你需要让它接受一个时间,而不是自己决定它。也许你应该展示一些代码。那会很有帮助。

    天哪!鲍勃,我真不敢相信,你的假设怎么都是真的呢让我回答你剩下的问题;错误的值意味着,我可以在数据库服务器的logtime列中看到正确的值。但是当我试图检索它时,logtime列包含的值既不是我在数据库中看到的时间,也不是数据库服务器上的本地时间。这意味着服务将日志时间设为本地时间(服务器),并试图转换为我的时区,因此对我来说是不正确的。您的第一个选项看起来不错,但不适合我的场景,因为我的客户端应用程序可以在世界任何地方。我不能使用你的第二个和第三个选项,因为正如我所说,我将发送和检索大量数据,所以我无法转换所有这些。这是不可行的