Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Добрый день.

Есть ли "нормальное" решение прибавить к GetUTCDATE() так называемый UTCoffset (NVARCHAR(6) = '+05:00')

что-то типа:
DECLARE @UTCoffset NVARCHAR(6) = '+05:00'

SELECT GetUTCDATE() + @UTCoffset
28 май 19, 15:03    [21895820]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
Игорь_UUS
Добрый день.

Есть ли "нормальное" решение прибавить к GetUTCDATE() так называемый UTCoffset (NVARCHAR(6) = '+05:00')

что-то типа:
DECLARE @UTCoffset NVARCHAR(6) = '+05:00'

SELECT GetUTCDATE() + @UTCoffset


todatetimeoffset?
28 май 19, 15:07    [21895828]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
Игорь_UUS
Есть ли "нормальное" решение прибавить к GetUTCDATE() так называемый UTCoffset (NVARCHAR(6) = '+05:00')
TODATETIMEOFFSET
28 май 19, 15:11    [21895835]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
Наверное не правильно выразился...


мне нужно к DATETIME прибавить временную зону... т.е.



DECLARE @D DATETIME = '2019-05-28 13:47:15.240' + '+05:00' = '2019-05-28 18:47:15.240'


мне нужно получить дату время в DATETIME а не в datetimeoffset
28 май 19, 16:53    [21895935]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
Игорь_UUS
мне нужно к DATETIME прибавить временную зону... т.е.
А, тогда соседняя функция их хелпа, SWITCHOFFSET. Вы его не читаете, что ли?
28 май 19, 17:11    [21895946]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 670
alexeyvg
Игорь_UUS
мне нужно к DATETIME прибавить временную зону... т.е.
А, тогда соседняя функция их хелпа, SWITCHOFFSET. Вы его не читаете, что ли?


Спасибо! Как бы то... но опять я не правильно описываю "головоломку".

Подскажите пожалуйста, как мне зная время и временную зону высчитать UTC время... суть какая

Допустим мне нужно выполнить задание в "12:00" по времени филиала, зная временную зону филиала "+03:00", мне нужно получить время в UTC т.е. время выполнение задание по UTC будет "09:00"

если мне делать:

DECLARE @D DATETIME = CONVERT(DATETIME, '30.05.2019 12:00:00', 104)

SELECT SWITCHOFFSET(@D, '+03:00')


то время у меня сдвигается в большую сторону... подскажите как тут правильно поступить?
29 май 19, 12:04    [21896553]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Игорь_UUS
alexeyvg
пропущено...
А, тогда соседняя функция их хелпа, SWITCHOFFSET. Вы его не читаете, что ли?


Спасибо! Как бы то... но опять я не правильно описываю "головоломку".

Подскажите пожалуйста, как мне зная время и временную зону высчитать UTC время... суть какая

Допустим мне нужно выполнить задание в "12:00" по времени филиала, зная временную зону филиала "+03:00", мне нужно получить время в UTC т.е. время выполнение задание по UTC будет "09:00"

если мне делать:

DECLARE @D DATETIME = CONVERT(DATETIME, '30.05.2019 12:00:00', 104)

SELECT SWITCHOFFSET(@D, '+03:00')



то время у меня сдвигается в большую сторону... подскажите как тут правильно поступить?

Для DATETIME это так:
DECLARE @D DATETIME='20190530 12:00:00';
SELECT DATEADD(HOUR,-3,@D);
29 май 19, 12:28    [21896589]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
invm
Member

Откуда: Москва
Сообщений: 9273
Игорь_UUS
подскажите как тут правильно поступить?
declare @d datetime = '20190530 12:00';

select
 @d, a.tz, cast(switchoffset(todatetimeoffset(@d, a.tz), '+00:00') as datetime)
from
 (select datepart(tzoffset, sysdatetimeoffset())) a(tz);
29 май 19, 12:34    [21896599]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте, как прибавить/убавить UTCoffset к нужной дате?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
DECLARE @D DATETIME='20190530 12:00:00';
SELECT @D-CAST('03:00'AS TIME);
У invm круче, конечно Не спорю...
29 май 19, 13:23    [21896680]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить