How do you convert VARCHAR to TIMESTAMP in MSSQL?

前端 未结 3 1070
刺人心
刺人心 2021-01-05 13:47

You\'d like to call a stored proc on MS SQL that has a parameter type of TIMESTAMP within T-SQL, not ADO.NET using a VARCHAR value (e.g. \'0x0000000002C490C8\').

Wha

3条回答
  •  清歌不尽
    2021-01-05 13:56

    A TIMESTAMP is semantically equivalent to VARBINARY(8) (nullable) or BINARY(8) (non-nullable). So you should be able to call the procedure with the parameter unquoted, as follows:

    EXEC usp_MyProc @myParam=0x0000000002C490C8
    

    See also SQL Books Online

    EDIT for updated question ...

    I just tried a few experiments. Frankly, I'm curious as to how you got this represented as a varchar in the first place, since when I do something like:

    select top 10 convert(varchar, ts) from foo
    

    Where ts is a timestamp, I get 10 blank rows. (If I don't convert, I see my timestamps.)

    However, I tried working at it from the proper direction ... I did this:

    select convert(timestamp, '0x0000000000170B2E')
    

    And the conversion resulted in 0x3078303030303030. So that won't play either. Nor will converting to binary.

    I hate to say it, but you might be stuck in a dynamic SQL world. I'd really like to be wrong, though.

提交回复
热议问题