Sql server 英国夏令时(BST)的SQL Server Active Directory导入问题

Sql server 英国夏令时(BST)的SQL Server Active Directory导入问题,sql-server,datetime,active-directory,Sql Server,Datetime,Active Directory,我使用SQL Server ADSI从Active Directory导入数据,并使用whenChanged字段控制是否需要重新导入组的成员 问题是日期以格林尼治标准时间返回,而我目前在英国夏令时 那么,今天早上9:50有一个成员改变了吗,我的广告工具说是9:50,但ADSI查询返回8:50。这意味着,如果一小时内有两个变化,我将错过一个 我使用的查询如下所示: Select distinguishedName, whenChanged From OpenQuery(ADSI, '<LD

我使用SQL Server ADSI从Active Directory导入数据,并使用whenChanged字段控制是否需要重新导入组的成员

问题是日期以格林尼治标准时间返回,而我目前在英国夏令时

那么,今天早上9:50有一个成员改变了吗,我的广告工具说是9:50,但ADSI查询返回8:50。这意味着,如果一小时内有两个变化,我将错过一个

我使用的查询如下所示:

Select distinguishedName, whenChanged 
From OpenQuery(ADSI, '<LDAP://OU=Groups,DC=mydomain,DC=adr>;(objectCategory=Group);distingusihedName, whenChanged')
更改时选择DifferentiedName
从OpenQuery(ADSI,”;(objectCategory=Group);当更改时,区分HEDNAME)

我是否可以使用另一个字段来提供准确的日期?有没有更好的方法来执行我在SQL Server中尝试执行的操作?

首先为什么要存储本地时间?
whenChanged
属性已经为您提供了GMT,在该时区内不能“丢失”任何小时


可以转换为本地时间显示,但我肯定会将GMT/UTC存储在DB中。

为什么要首先存储本地时间?
whenChanged
属性已经为您提供了GMT,在该时区内不能“丢失”任何小时


可以转换为本地时间进行显示,但我肯定会将GMT/UTC存储在DB中。

我刚刚得出了相同的结论,将更改的时间存储为上次同步的日期,并从中进行比较。谢谢。我刚刚得出了相同的结论,将更改后的日期存储为上次同步的日期,并从中进行比较。谢谢