SQL Server - Как преобразовать тип даты и времени из типа Nvarchar?

Этот путь расположения схемы неверен:

http://www.springframework.org/schema/beans

Правильный путь должен заканчиваться на /:

http://www.springframework.org/schema/beans/
0
задан CR241 16 January 2019 в 22:51
поделиться

3 ответа

declare @d varchar(50)='20180402',
        @t varchar(50)='134259'


select convert(varchar(50),convert(date,@d)) + ' '+ convert(varchar(50),dateadd(hour, (@T / 10000) % 100,
       dateadd(minute, (@T / 100) % 100,
       dateadd(second, (@T / 1) % 100,
       cast('00:00:00' as time(3))))) )
0
ответ дан huMpty duMpty 16 January 2019 в 22:51
поделиться

Вы можете преобразовать обе строки в значение datetime и сложить их вместе, чтобы получить объединенную дату и время, или объединить строки и преобразовать результат.

Обратите внимание, что для правильного разбора времени потребуется добавить два : символа:

select cast(d as datetime) + cast(stuff(stuff(t,5,0,':'),3,0,':') as datetime) as dt1
      ,cast(d + ' ' + stuff(stuff(t,5,0,':'),3,0,':') as datetime) as dt2
from (values('20180402','134259')) as v(d,t);

Вывод

+-------------------------+-------------------------+
|           dt1           |           dt2           |
+-------------------------+-------------------------+
| 2018-04-02 13:42:59.000 | 2018-04-02 13:42:59.000 |
+-------------------------+-------------------------+
0
ответ дан iamdave 16 January 2019 в 22:51
поделиться

Вы можете использовать DATETIMEFROMPARTS :

SELECT DATETIMEFROMPARTS(
    SUBSTRING(column1, 1, 4),
    SUBSTRING(column1, 5, 2),
    SUBSTRING(column1, 7, 2),
    SUBSTRING(column2, 1, 2),
    SUBSTRING(column2, 3, 2),
    SUBSTRING(column2, 5, 2),
    0
)
FROM (VALUES
    ('20180402', '134259')
) v(column1, column2)
0
ответ дан Salman A 16 January 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: