从WCF服务获取无效的datetime值

时间:2012-04-29 10:12:56

标签: c# sql-server wcf datetime serialization

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

当我为具有作为datetime的数据类型的logtime的列执行批量插入时,我能够将此本地日期时间保存在数据库中,但是当我尝试检索此表时,它会给出所有错误的logtime值柱。

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

有没有办法停止由WCF服务完成的自动日期时间转换。

请指导。

1 个答案:

答案 0 :(得分:1)

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

我假设您希望logtime列成为客户端计算机的时区。是对的吗?而且我还假设,由于未指定,您使用SQL Server中的默认值GetDate()设置logtime列。我也假设,因为没有指定,你正在使用SQL Server。

如果您想使用客户的时区,那么您有几个选择:

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

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