Как прочитать системное время в WPF для обновления поля отметки времени SQL Server? - PullRequest
1 голос
/ 18 января 2010

В целях организации упорядоченного опроса на основе таймера базы данных при каждом обновлении таблицы базы данных мне нужно обновлять поле метки времени в базе данных SQL Server 2008 (затем опросить, прочитать его значение, сравнить со значением в интерфейсе пользователя). и принятие решения о прочтении всей таблицы).

Что касается всего этого, как я могу прочитать системное время для записи метки времени? Какой формат данных поля SQL Server использовать (DataTime или Time)? А как можно сравнить значения этого формата?

1 Ответ

2 голосов
/ 18 января 2010

Вы говорите о столбце базы данных типа TIMESTAMP ??

Это двоичные метки времени, которые SQL Server будет обновлять внутри - они не имеют никакого отношения к дате и / или времени - на самом деле это просто счетчик с двоичным кодом. Эти поля обрабатываются системой, и они надежны и очень точны - если вы хотите иметь какой-то оптимистичный механизм блокировки параллелизма, используйте этот тип поля.

Если вам нужно поле DATETIME, содержащее дату и время последней модификации, лучше всего было бы иметь триггер AFTER INSERT / AFTER UPDATE для этой таблицы, который устанавливает последний обновленный столбец на текущую дату / время SQL Server автоматически, без необходимости что-либо предпринимать.

DATETIME в SQL Server 2005 с точностью до 3,33 мс - в SQL Server 2008 DATETIME2 можно сделать с точностью до 100 нс, если это необходимо. Поэтому не полагайтесь на столбец DATETIME для 100% точной проверки, изменилось ли что-то или нет! Точность 3,33 мс может дать неверные результаты!

...