Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么SQL Server会调整DST的日期时间?_C#_.net_Sql Server_Vb.net - Fatal编程技术网

C# 为什么SQL Server会调整DST的日期时间?

C# 为什么SQL Server会调整DST的日期时间?,c#,.net,sql-server,vb.net,C#,.net,Sql Server,Vb.net,我有一个接受表值参数的存储过程 该表中的一个值是datetime。我已经展示过,它有时会通过运行一个查询将DST的时间调整回一小时,该查询在该日期的时间部分不是00:00(它应该始终是00:00)并且是或不是DST时计数 这造成了问题。基本上,这就是它传递给过程的方式: DateTime dt = DateTime.Parse("2015-05-15 00:00"); aDataTable.rows(0).("column") = dt; someCommand.Parameters.AddWi

我有一个接受表值参数的存储过程

该表中的一个值是datetime。我已经展示过,它有时会通过运行一个查询将DST的时间调整回一小时,该查询在该日期的时间部分不是
00:00
(它应该始终是
00:00
)并且是或不是DST时计数

这造成了问题。基本上,这就是它传递给过程的方式:

DateTime dt = DateTime.Parse("2015-05-15 00:00");
aDataTable.rows(0).("column") = dt;
someCommand.Parameters.AddWithValue("@tvp", aDataTable);
这个过程不会改变时间

在调试过程中,我正在读取过程执行前的datetime值,它是
2015-05-15 00:00
,但它会作为
2015-05-14 23:00
存储到数据库中


SQL Server是否会更改DST的时间?如何、何时、为什么?我应该在这里查找什么?

您的计算机和SQL server是否在同一时区?他们有相同的区域设置吗?@DStanley,如果这很重要的话,我有一个更基本的问题:我如何在不需要担心的情况下坚持一段时间?时间应独立于设置;它需要是提供给过程的显式值。没有一个正确的答案-但是如果您需要支持多个时区的客户端,我会在服务器上以UTC存储日期,并让客户端转换为其本地时区。我不是处理多个时区的专家,所以肯定有更好的意见。当日期足够时,为什么要使用DateTime数据类型?您正在使用非常旧的sql server版本吗?好的,sql server不会为DST调整日期时间值。你能想出一个简单完整的例子(包括C#和SQL代码)来重现这个问题吗?