Значения в поле метки времени, отображаемые в шестнадцатеричном формате (0x000000000000000866) в Microsoft SQL Server 2008 - PullRequest
8 голосов
/ 09 декабря 2010

У меня есть таблица, в которой я сохраняю отправленные письма. Затем я решил добавить поле TimeStamp в эту таблицу, чтобы я мог отслеживать, когда электронное письмо было отправлено. Данные записываются в таблицу без каких-либо проблем, но когда я просматриваю содержимое таблицы с помощью Microsoft SQL Server 2008 Management Studio, данные, содержащиеся в поле Timestamp, отображаются следующим образом: 0x000000000000000000845, даже в записанных записях в базу данных с момента введения значения Timestamp

Затем я изменил тип поля на datetime, и затем отобразится дата. Но он отображает дату 1900-01-01 00:00:23, например. Затем я вернул его обратно в поле Timestamp, и он вернулся в свой текущий шестнадцатеричный формат.

Я что-то не так делаю?

Приветствия

1 Ответ

14 голосов
/ 09 декабря 2010

Я решил тогда добавить TimeStamp поле к этой таблице, чтобы я мог отслеживать когда электронное письмо было отправлено

Ах, да. Чтение базы данных показало бы, что поле TMIestamp, которое является наследием от сервера Sybase, НЕ хранит метку времени. По сути, это что-то вроде глобального счетчика операций. Это не имеет отношения ко времени.

Если вам нужна реальная временная метка, вставьте столбец типа DateTime и установите системное время по умолчанию / через atrigger и т. Д. Отметка времени совершенно не подходит для этого.

Опять же, не MS вещь - MS SQL Server запущен как порт Sybase SQL Server для Windows, а тип Timestampdata является наследием Sybase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...