No código abaixo, não entendo de onde vem o SQL_Variant - A coluna que está reclamando é LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime
De acordo com os documentos do MSFT, esta é uma DATETIME
coluna.
De onde vem o SQL_Variant
tipo de dados?
DROP TABLE #PasswordChange;
CREATE TABLE #PasswordChange (name VARCHAR(50),
lastPWChangeTS DATETIME,
PWhash VARBINARY(26));
INSERT INTO #PasswordChange (name,
lastPWChangeTS,
PWhash)
SELECT [name],
LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime,
LOGINPROPERTY([name], 'PASSWORDHASH') AS PWhash
FROM sys.syslogins
WHERE loginproperty([name], 'PASSWORDLASTSETTIME') > DATEADD(HOUR, -24,
GETDATE());
Msg 257, Level 16, State 3, Line 6
Implicit conversion from data type sql_variant to datetime is not
allowed. Use the CONVERT function to run this query.
O valor de retorno depende do valor de entrada, mas o conjunto de resultados retorna sql_variant para acomodar todos os tipos de retorno possíveis.
Você terá que fazer alguns ajustes no seu código.