timestamp в MSSQL

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

timestamp в MSSQL

Сообщение Dmitriy Solomnikov » 25.07.2006 (Вт) 17:58

В BOL написано, что это версия строки. У меня вопроса:

1. Версия строки в таблице, базе или еще где-то?

2. Как с ней работать? Попытался считать - получил массив из 8 байт. При конвертации в int (CONVERT(int, myField)) получил нормальное число, правдо какое-то здоровое.
Моя дверь всегда открыта, если она не закрыта.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 26.07.2006 (Ср) 1:07

Не знаю, зачем тебе понадобился этот тип, но скорее всего он тебе не нужен. Если же из праздного любопытства, то это такой особый тип данных, значение которого автоматически изменяется при любой модификации строки (сервер сам его меняет и ругается, когда ты пытаешься явно апдейтить такое поле). Значение гарантированно уникально в пределах БД.

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 26.07.2006 (Ср) 9:01

Ennor писал(а):Значение гарантированно уникально в пределах БД.


Так, что есть его значение? Я считал 8 байт... предполагаю, что в них содержится какое-то значение, но какое? Может дата, может время, может целое?
Моя дверь всегда открыта, если она не закрыта.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.07.2006 (Ср) 10:34

это полная дата + полное время с учетом 10000 мс

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 26.07.2006 (Ср) 12:10

Konst_One писал(а):это полная дата + полное время с учетом 10000 мс

Неправда. Это своего рода DB-wide identity - последовательно увеличивающиеся значения в диапазоне bigint. К дате/времени отношения никакого не имеет, если конечно речь идет о типе timestamp в понимании MSSQL 2000, а не SQL-92. Вообще же, более корректно было бы называть его rowversion, дабы избежать путаницы.

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 26.07.2006 (Ср) 12:45

Ennor писал(а):Неправда. Это своего рода DB-wide identity - последовательно увеличивающиеся значения в диапазоне bigint. К дате/времени отношения никакого не имеет, если конечно речь идет о типе timestamp в понимании MSSQL 2000, а не SQL-92. Вообще же, более корректно было бы называть его rowversion, дабы избежать путаницы.


все-таки int (int64)...
Моя дверь всегда открыта, если она не закрыта.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 26.07.2006 (Ср) 12:52

Скажем так - binary( 8 ), если быть совсем точным.

Да, я знаю что bigint - знаковый тип. Просто идентити с бинарным полем как-то не очень вяжется, а беззнаковых численных типов в 2000 сиквеле нет (кроме tinyint и bit, но они не в счет).


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 1

    TopList