Как использовать SQL Server GETDATE(), когда системное время выключено?

Я пишу приложение, которое требует точного времени (с точностью до нескольких секунд, ничего безумного). Приложение находится на C# и взаимодействует с SQL Server, оба находятся на одном компьютере. В моем коде приложения я получаю время с NTP-сервера, но я хочу иметь возможность писать операторы SQL, которые используют GETDATE() вместо того, чтобы записывать текущее время в оператор SQL.

К сожалению, системное время на сервере не остается точным с течением времени. Есть ли способ использовать GETDATE(), когда системное время выключено? Я бы предпочел не писать код, который извлекает время с NTP-сервера, а затем обновляет системное время.

1 ответ

Вам не нужно самостоятельно писать какой-либо код для общения с NTP - вы просто должны иметь возможность включить службу времени Windows, которая сама это сделает. Если вы обнаружите, что ваши системные часы все еще слишком быстро сдвигаются, это говорит о том, что с компьютером может быть что-то не так - служба времени должна синхронизироваться достаточно часто, чтобы она оставалась довольно близко.

РЕДАКТИРОВАТЬ: Если, как предложено, служба времени Windows не поддерживает достаточную точность, я уверен, что есть много других клиентов NTP, которые будут работать в качестве службы в Windows. Я почти уверен, что раньше запускал NetTime... Хотя я определенно не рекомендовал бы писать его самостоятельно, просто на том основании, что это уже сделано.

Другие вопросы по тегам