24.04.2015, 15:11 | #1 |
Участник
|
Доброго времени суток!
DateTime := CURRENTDATETIME вернет там текущий DateTime. Как определить является DateTime - UTC или неUTC ? Буду рад идеям. |
|
24.04.2015, 17:38 | #2 |
Участник
|
Ну например найти вебстраницу, которая сообщает актуальный UTC и посредством HTTP-реквеста из НАВ оный UTC с этой вебстраницы взять
|
|
24.04.2015, 19:24 | #3 |
Участник
|
Еще вариант, в SQL есть функции для работы со временем и часовыми поясами. Можно состряпать запрос, который вернет то, что вам нужно и выполнить его из НАВа.
|
|
27.04.2015, 13:21 | #4 |
Участник
|
Нав всегда использует UTC для datetime
|
|
27.04.2015, 14:15 | #5 |
Участник
|
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
|
|
27.04.2015, 16:28 | #6 |
Участник
|
Цитата:
Сообщение от AlexB
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
В контексте вопроса - CURRENTDATTIME всегда возвращает дату в формате "не UTC". |
|
28.04.2015, 09:56 | #7 |
Участник
|
Цитата:
Сообщение от rmv
Цитата:
Сообщение от AlexB
Вообще то я думал, что UTC это время по нулевому часовому поясу /меридиану. Если в NAV выкинуть MESSAGE с CURRENTDATETIME, то увидим время по часовому поясу, который установлен на NAV-компе в региональных настройках. Если актуальное UTC время 15:00 и на компе стоит время России (UTC + 3 часа), то MESSAGE с CURRENTDATTIME покажет 18:00, т.е. время соотв. часовому поясу в региональных настройках а вовсе не UTC (15:00). Или я что-то напутал?
В контексте вопроса - CURRENTDATTIME всегда возвращает дату в формате "не UTC". |
|
28.04.2015, 11:28 | #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 |
|
19.06.2015, 09:12 | #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 |
|
19.06.2015, 13:42 | #10 |
Участник
|
|
|
21.06.2015, 21:37 | #11 |
Участник
|
SQL-запросом
SQLAddQueryText('select Convert(varchar(50), getutcdate(),104)+'); SQLAddQueryText(app+' '+app+'+Convert(varchar(50), getutcdate(),108) as DT'); |
|