Eu tenho uma consulta que une duas tabelas com base em um timestamp
valor (não pergunte).
Uma dessas tabelas armazena os dados em uma coluna com um Timestamp
tipo de dados. O outro o armazena como um arquivo varchar
.
Anteriormente, a consulta convertia a timestamp
coluna em uma varchar
para a junção. Pelo que entendi, isso não pode ser sargável, então gostaria de fazer o contrário. (A timestamp
mesa é muito maior e a eficiência é mais um problema).
SELECT *
FROM TABLE1
INNER JOIN TABLE2
ON UPPER(master.dbo.fn_sqlvarbasetostr(cast(TimestampColumn as binary(8))))
= VARCHARTIMESTAMPCOLUMN
Eu tentei:
CONVERT(ROWVERSION, N'0x0000000003306BDD')
Nenhum erro, mas nenhuma correspondência na tabela (quando existe definitivamente uma linha).
CONVERT(ROWVERSION, CAST(N'0x0000000003306BDD' as bigint))
Isso dá um erro ao converter nvarchar
para bigint
.
Como posso converter o varchar
valor em um timestamp
em vez do contrário?