2016-03-22 3 views
0

Скажем, машина A - это сервер приложений, на котором я запускаю sql-запрос. Машина B, в которой настроен сервер sqlserver. Они находятся в разных часовых поясах. например, машина A находится в IST и машине B в CST Теперь я хочу запустить sql-запрос в Machine A, чтобы получить текущее время, а не текущее время сервера SQL.Sql Query, чтобы получить текущее время системы

Для примера. Я попробовал все эти функции, но они возвращаются машины B (SQL Server текущее время) ВЫБРАТЬ SYSDATETIME() , SYSDATETIMEOFFSET() , CURRENT_TIMESTAMP , GETDATE()

Я могу принести машина текущее время на Java и передать его к sql-запросу, но есть ли способ получить сам sql-запрос ??

+0

Почему серверу sql известно, что на удаленном компьютере? – user1666620

+0

В конкретном запросе мне нужно системное время для получения записей соответственно. – ankit

+0

мой вопрос был риторическим. если вы хотите сохранить локальное время удаленного компьютера в своей базе данных, добавьте его в качестве параметра в свой SQL-скрипт или хранимую процедуру. – user1666620

ответ

0

Нет. И это имеет смысл, потому что SQL отправит вашу команду на сервер. Таким образом, вы ожидаете, что SQL Server затем волшебным образом перейдет на ваш компьютер и выполнит код?

Общий подход заключается в том, что вся локальная обработка (уровень сервера приложений) завершается, когда SQL отправляется на сервер (в виде строки).

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

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

+0

Спасибо, ребята. похоже, что не имеет смысла запрашивать время сервера приложений. Лучше я поставляю через Java-код. – ankit

0

Вы должны использовать инструменты DateTime Class других языков.

Вы не запрашиваете из базы данных текущее время, потому что это не хранимые данные или сохраняемые.

Нет решения, если вы это сделаете в SQL, вам действительно нужно сделать это на языке Java или C#, поскольку они имеют доступ к времени машины, поскольку программа предназначена для работы на машине , поэтому они справляются с этим.

Смежные вопросы