I have a query which joins two tables based on a `timestamp` value (don't ask). One of these tables stores the data in a column with a `Timestamp` data type. The other stores it as a `varchar`. Previously, the query converted the `timestamp` column to a `varchar` for the join. As I understand it this is not sargable, so I'd like to do the reverse. (The `timestamp` table is much larger and efficiency is more of an issue). SELECT * FROM TABLE1 INNER JOIN TABLE2 ON UPPER(master.dbo.fn_sqlvarbasetostr(cast(TimestampColumn as binary(8)))) = VARCHARTIMESTAMPCOLUMN I've tried: CONVERT(ROWVERSION, N'0x0000000003306BDD') No error, but no match on the table (when a row definitely exists). CONVERT(ROWVERSION, CAST(N'0x0000000003306BDD' as bigint)) This gives an error converting `nvarchar` to `bigint`. How can I convert the `varchar` value into a `timestamp` rather than the other way around?