none
timestamp型について RRS feed

  • 質問

  • SQLServer2005のtimestamp型について質問です。
    timestamp型の役割としては行が更新した日時を自動的に保持してくれる列のための型と思っています。
    TM(timestamp)という列のあるテーブルに対して
    SELECT * FROM TABLE_NAME
    とした場合てっきり「2001/01/01」のように目で見える形で取得できるのかと思いきや、
    「0x00000000000007D2」と表示されてしまいました。
    contertとか使うのかな、と思いSELECT convert(char,[TM],101) FROM TABLE_NAME
    としたところ空の値(NULL??)が返ってきてしまいました。
    timestamp型はバイナリで管理されていてその列が更新されているかどうかを比較するために使うもので
    単純に入ってる日時に変換できたりはしないのでしょうか。
    2009年7月7日 14:58

回答

  • timestamp
    http://msdn.microsoft.com/ja-jp/library/aa260631(SQL.80).aspx

    timestamp は自動生成されたバイナリ値を公開するデータ型です。これらの値は、データベース内で一意であることが保証されます。timestamp は、通常、テーブル行にバージョンスタンプを付けるメカニズムとして使用されます。記憶領域のサイズは 8 バイトです。

    解説

    Transact-SQL timestamp 型は、SQL-92 規格で定義されている timestamp 型とは異なります。SQL-92 timestamp 型は、Transact-SQL datetime 型に相当します。


    上記を読む限り、SQL のtimestamp型と日時は関連しないと思われます。

    • 回答としてマーク Masato0407 2009年7月7日 15:30
    2009年7月7日 15:24

すべての返信

  • timestamp
    http://msdn.microsoft.com/ja-jp/library/aa260631(SQL.80).aspx

    timestamp は自動生成されたバイナリ値を公開するデータ型です。これらの値は、データベース内で一意であることが保証されます。timestamp は、通常、テーブル行にバージョンスタンプを付けるメカニズムとして使用されます。記憶領域のサイズは 8 バイトです。

    解説

    Transact-SQL timestamp 型は、SQL-92 規格で定義されている timestamp 型とは異なります。SQL-92 timestamp 型は、Transact-SQL datetime 型に相当します。


    上記を読む限り、SQL のtimestamp型と日時は関連しないと思われます。

    • 回答としてマーク Masato0407 2009年7月7日 15:30
    2009年7月7日 15:24
  • やはりそういう意味でしたか。
    すごく納得しました。
    URL+詳細の説明ありがとうございました!
    2009年7月7日 15:30