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

Откуда:
Сообщений: 1
declare @i int=7, @d datetime , @t nvarchar(22)
set @t=cast( (select '1016-07-'+cast(@i as nvarCHAR)+' 08:58:35')As nvarchar(22))

select replace(@t,'-','')
set @d=(convert(datetime,@t,120)) <---вот здесь вылазиет ошибка (((((((((
select @d


вылазиет это ошибка Где я делаю не так прошу подскажите

Если это поможет вот она самая ошибка ругается на диапозон
(строк обработано: 1)
Сообщение 242, уровень 16, состояние 3, строка 7
Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.
3 июл 16, 16:28    [19364558]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
declare @i int=7, @d datetime2 , @t nvarchar(22)
set @t=cast( (select '1016-07-'+cast(@i as nvarCHAR)+' 08:58:35')As nvarchar(22))

select replace(@t,'-','')
set @d=(convert(datetime2,@t,120))
select @d
3 июл 16, 16:41    [19364567]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
azatshabden,

дефисы уберите в дате.
4 июл 16, 12:00    [19366251]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Владислав Колосов
azatshabden,

дефисы уберите в дате.
Надо обеспечить день из двух цифр прежде всего (дополнить слева нулём, если надо).
А уже потом убирать.
И при чём тут 120-й формат? После замены дефисов-то.
4 июл 16, 13:15    [19366619]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
sergeimv
Member

Откуда: Россия, г.Казань
Сообщений: 42
Если есть возможность, то
select datetime2fromparts(1016, 7, 7, 8, 58, 35, 0, 0)
4 июл 16, 13:31    [19366691]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
declare @i int=7, @d datetime2;

set @d='1016-07-'+REPLACE(STR(@i,2),' ','0')+'T08:58:35.000';
SELECT @d;
4 июл 16, 13:37    [19366721]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3741
+
еще
1016 ->2016
4 июл 16, 13:45    [19366743]     Ответить | Цитировать Сообщить модератору
 Re: Не могу сконвертировать nvarchar(22) на datatime помогите плизззз  [new]
sergeimv
Member

Откуда: Россия, г.Казань
Сообщений: 42
День дополнить нулями, как сказали выше до 2-х знаков можно через FORMAT
declare @i int=7, @d datetime2;

set @d='1016-07-'+FORMAT(@i, '00')+'T08:58:35.000';
SELECT @d;
4 июл 16, 13:49    [19366769]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить