|
|
#1 |
|
Участник
|
Доброго времени суток!
DateTime := CURRENTDATETIME вернет там текущий DateTime. Как определить является DateTime - UTC или неUTC ? Буду рад идеям. |
|
|
|
|
#2 |
|
Участник
|
Ну например найти вебстраницу, которая сообщает актуальный UTC и посредством HTTP-реквеста из НАВ оный UTC с этой вебстраницы взять
|
|
|
|
|
#3 |
|
Участник
|
Еще вариант, в SQL есть функции для работы со временем и часовыми поясами. Можно состряпать запрос, который вернет то, что вам нужно и выполнить его из НАВа.
|
|
|
|
|
#4 |
|
Участник
|
Нав всегда использует UTC для datetime
|
|
|
|
|
#5 |
|
Участник
|
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
|
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от AlexB
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
В контексте вопроса - CURRENTDATTIME всегда возвращает дату в формате "не UTC". |
|
|
|
|
#7 |
|
Участник
|
Цитата:
Сообщение от rmv
Цитата:
Сообщение от AlexB
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
В контексте вопроса - CURRENTDATTIME всегда возвращает дату в формате "не UTC". |
|
|
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от xdimidrolx
Да, все так. Но есть одно но! Если это NAV2009 SP1 и работает через вебсервис CURRENTDATTIME вернет в UTC формате, но если это NAV2009R2-NAV2015 и в конфигурации сервера опция "WebServicesDefaultTimeZone" = "Server Time Zone" тогда вернет UTC+LocalRegionalSettings. Вопрос в том, что-бы определить в конкретный момент времени вебсервис работает в UTC или неUTC, при этом не зная конфигурации сервера.
Код: CREATE view
[dbo].[sys_ConnectionProperties]
as
select cast(serverproperty('servername') as varchar(100)) as server_name, DB_NAME() as db_name, @@SPID as spid
, system_USER as [system_user]
, GETUTCDATE() as UTC_DT
, GETDATE() as DT |
|
|
|
|
#9 |
|
Участник
|
Цитата:
Сообщение от rmv
Цитата:
Сообщение от xdimidrolx
Да, все так. Но есть одно но! Если это NAV2009 SP1 и работает через вебсервис CURRENTDATTIME вернет в UTC формате, но если это NAV2009R2-NAV2015 и в конфигурации сервера опция "WebServicesDefaultTimeZone" = "Server Time Zone" тогда вернет UTC+LocalRegionalSettings. Вопрос в том, что-бы определить в конкретный момент времени вебсервис работает в UTC или неUTC, при этом не зная конфигурации сервера.
Код: CREATE view
[dbo].[sys_ConnectionProperties]
as
select cast(serverproperty('servername') as varchar(100)) as server_name, DB_NAME() as db_name, @@SPID as spid
, system_USER as [system_user]
, GETUTCDATE() as UTC_DT
, GETDATE() as DT |
|
|
|
|
#10 |
|
Участник
|
|
|
|
|
|
#11 |
|
Участник
|
SQL-запросом
SQLAddQueryText('select Convert(varchar(50), getutcdate(),104)+'); SQLAddQueryText(app+' '+app+'+Convert(varchar(50), getutcdate(),108) as DT'); |
|
|