为什么来自AD的日期时间值显示为' System .__ ComObject'在SSIS?

时间:2018-01-08 14:21:11

标签: sql sql-server ssis active-directory ldap

我正在尝试在SSIS中创建一个包,它将从我的AD中读取值并保存到数据库中的表中。

当我运行此查询时:

SELECT * FROM OpenQuery ( 
  ADSI,  
  'SELECT whenCreated,  whenChanged, [...], badPasswordTime, sAMAccountName
  FROM  ''LDAP://mydomain.com/OU=ouUsers,DC=MYDOMAIN,DC=com'' 
  WHERE objectClass =  ''User'' AND displayName <> ''__Template__''
  ') AS tblADSI
ORDER BY sAMAccountName

要求提供很多不同的属性,我得到 whenChanged whenCreated 的日期时间值(格式为2018-01-01 00:00:00.000),但是其他所有值的刻度值日期时间属性 - 例如 badPasswordTime lastLogon 等。

但是,当我在SSIS中运行基本相同的查询时(作为ADO.NET源,在一行中):

<LDAP://mydomain.com/OU=ouUsers,DC=MYDOMAIN,DC=com>;
(&(objectClass=user)(!displayName=__Template__));
sAMAccountName, badPasswordTime, [...]. whenChanged, whenCreated

当我点击预览... 时,datetime属性的值显示为 System .__ ComObject whenChanged whenCreated ,就像之前一样。)

我可以将 whenChanged whenCreated 值转换为DT_DATE,稍后在SSIS中将其转换为奇数,因为所有这些日期时间属性在AD中都具有相同的格式(如{{ 1}})。

您能否建议如何将所有这些日期时间属性纳入DT_DATE?

0 个答案:

没有答案