VB.NET|SQL ServerのTimestamp型をString型に変換

SQL Serverのシステム型で用意されているTimestamp型は行の世代を示す列で、行に何等かの更新が発生すると自動的に値が変更されます。

更新の有無を把握する型であり、取得済のTimestampの値とテーブルの行に存在するTimestampの値に違いがあれば、その行に何等かの更新があったことになります。

SQL文内であればTimestamp値を比較することは可能ですが、TimeStamp値はByte配列として格納されているため、プログラムで扱える型に変換してから使うようになります。

そこで、TimeStampの値を文字列に変換する方法を紹介します。

TimeStamp型の値を文字列に変換するコード

TimeStamp型の値を受け取り、文字列に変換して戻すコードです。

プロジェクトどこからでも使用できるように「Public Function」で定義しましょう。

Module Module1
    Public Function timestamptostring(tm As Byte()) As String
        Dim i As Integer
        Dim txTimestamp As String = "0x"

        For i = 0 To tm.Length - 1
            txTimestamp &= Hex(tm(i)).PadLeft(2, "0")
        Next

        Return (txTimestamp)
    End Function
End Module 

TimeStamp型を文字列に変換するコードの使い方

Private Sub TimestampTest()
    Dim TxTs as String

    TxTs  = timestamptostring(Timestamp型)
End sub

コメント