Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
NewIvanovec Member Откуда: Msk Сообщений: 582 |
каким макаром можно из этой даты 2018-12-01 11:02:48.7723973 +03:00 сделать эту дату 2018-12-01 11:02:00 +03:00, т.е. обнулить секунды |
12 дек 18, 11:21 [21761183] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37146 |
Через конвертацию в smalldatetime (хотя могут быть нюансы). Или через datepart + DATETIMEFROMPARTS Сообщение было отредактировано: 12 дек 18, 11:26 |
12 дек 18, 11:26 [21761195] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47049 |
DECLARE @D DATETIMEOFFSET='2018-12-01 11:02:48.7723973 +03:00'; SELECT STUFF(S,CHARINDEX(':',S,CHARINDEX(':',S)+1),3,':00') FROM (SELECT CAST(CAST(@D AS DATETIMEOFFSET(0))AS VARCHAR(100)))T(S); |
12 дек 18, 11:40 [21761218] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47049 |
DECLARE @D DATETIMEOFFSET='2018-12-01 11:02:48.7723973 +03:00'; SELECT CAST(STUFF(S,CHARINDEX(':',S,CHARINDEX(':',S)+1),3,':00')AS DATETIMEOFFSET(0)) FROM (SELECT CAST(CAST(@D AS DATETIMEOFFSET(0))AS VARCHAR(100)))T(S); |
||
12 дек 18, 11:42 [21761222] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47049 |
2. offset будет потерян. Если конвертировать "в лоб", конечно. |
||
12 дек 18, 11:45 [21761232] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 2243 |
declare @dt datetimeoffset set @dt='2018-12-01 11:02:48.7723973 +03:00' select @dt, cast(format(@dt, 'yyyy-MM-dd hh:mm:00 zzz') as datetimeoffset)
|
|||||
12 дек 18, 11:52 [21761246] Ответить | Цитировать Сообщить модератору |
NewIvanovec Member Откуда: Msk Сообщений: 582 |
не ожидал, что столько вариантов может быть. Спасибо. для моей задачи подходит вариант без округления. |
12 дек 18, 12:01 [21761268] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37146 |
Забыл про округление, да.
|
||||
12 дек 18, 13:03 [21761406] Ответить | Цитировать Сообщить модератору |
NewIvanovec Member Откуда: Msk Сообщений: 582 |
есть проблема, если исходное время PM, то новое получается AM DECLARE @dt DATETIMEOFFSET SET @dt = '2018-12-02 22:18:20.8414917 +03:00' SELECT @dt, CAST(FORMAT(@dt, 'yyyy-MM-dd hh:mm:00 zzz') AS DATETIMEOFFSET) |
12 дек 18, 13:35 [21761474] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 2243 |
|
||
12 дек 18, 13:39 [21761483] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |