2017年4月15日土曜日

Timestamp型をString型に変換

SQL ServerのTimestamp型?

行の世代を示す列で、行に何等かの更新が発生すると自動的にTimestampの値が変更されます
更新の有無を把握する型であり、取得済の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 

呼び出し方はこのようなコードになります
Private Sub TimestampTest()
    Dim TxTs as String

    TxTs  = timestamptostring(Timestamp型)
End sub