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

Откуда:
Сообщений: 101
Есть int "TestDate" (это UTC дата и время в мс), например 01.08.2014 19:00 (пятница).
Нужно преобразовать в int UTC даты и времени следующего понедельника 9:00 (4авг).
5 авг 14, 16:49    [16402441]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37224
"int UTC даты" - это что за звери такие?
5 авг 14, 16:51    [16402449]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Сложно прибавить нужное количество мсек, что ли?
5 авг 14, 17:05    [16402536]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
M-stlyle
Member

Откуда:
Сообщений: 101
Владислав Колосов,
это я просто привел пример. суть в следующем, если дата-время позже пятницы 18-00, ее нужно перевести на понедельник 9-00. Исходная дата-время может быть любая, это может быть суббота 14-00 и т.п.
5 авг 14, 17:20    [16402620]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
M-stlyle
Member

Откуда:
Сообщений: 101
Гавриленко Сергей Алексеевич
"int UTC даты" - это что за звери такие?

поле с типом INT, которое содержит значения UTC
5 авг 14, 17:21    [16402625]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
M-stlyle,

ну так получите текущую дату в UTC и подсчитайте нужное количество миллисекунд разницы, потом прибавьте.
5 авг 14, 17:25    [16402639]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
Glory
Member

Откуда:
Сообщений: 104751
M-stlyle
если дата-время позже пятницы 18-00,

Ну так прибавьте к кажой пятнице соответствующее число дней.
В чем проблема ?
5 авг 14, 17:27    [16402645]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование даты (UTC) со сдвигом  [new]
mrGuest
Guest
M-stlyle,

Не знаю, что у Вас за дата "int UTC"... но если её можно представить в виде обычной даты, то все предельно просто:
declare	@d datetime
set	@d = getdate() -- какая-то дата со временем

set	@d = convert(varchar, @d, 103) -- берем только дату
set	@d = dateadd(d, 8 - datepart(dw, @d), @d) -- получаем следующий понедельник
set	@d = dateadd(hh, 9, @d) -- 9 утра следующего понедельника

select	@d
6 авг 14, 10:03    [16404774]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить