Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
needhelp001
Guest
Помогите сконвертировать datetime в smalldate:

		declare @d datetime = '2014-10-30 23:00:00.000'
			select cast(@d as smalldatetime)


Получаю ошибку
Msg 242, Level 16, State 3, Line 1
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.


Есть какой-то универсальный способ конвертации?
4 сен 15, 13:05    [18108221]     Ответить | Цитировать Сообщить модератору
 Re: The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
needhelp001
Есть какой-то универсальный способ конвертации?
declare @d datetime = '20141030 23:00:00.000'
select cast(@d as smalldatetime)
4 сен 15, 13:07    [18108233]     Ответить | Цитировать Сообщить модератору
 Re: The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
needhelp001
Guest
invm,

данные храняться в таблице уже в таком виде (как в переменной @d), как их привести к вашему виду?
4 сен 15, 13:08    [18108240]     Ответить | Цитировать Сообщить модератору
 Re: The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
Glory
Member

Откуда:
Сообщений: 104751
set dateformat DMY
GO
declare @d datetime 
set @d= '2014-10-30 23:00:00.000'
select cast(@d as smalldatetime)
go

set dateformat YMD
GO
declare @d datetime 
set @d= '2014-10-30 23:00:00.000'
select cast(@d as smalldatetime)
go


needhelp001
Есть какой-то универсальный способ конвертации?

set dateformat DMY
GO
declare @d datetime 
set @d= '20141030 23:00:00.000'
select cast(@d as smalldatetime)
go

set dateformat YMD
GO
declare @d datetime 
set @d= '20141030 23:00:00.000'
select cast(@d as smalldatetime)
go
4 сен 15, 13:08    [18108242]     Ответить | Цитировать Сообщить модератору
 Re: The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
needhelp001
invm,

данные храняться в таблице уже в таком виде (как в переменной @d), как их привести к вашему виду?

вы точно уверены что у вас там datetime поле,а не строка ???
4 сен 15, 13:09    [18108249]     Ответить | Цитировать Сообщить модератору
 Re: The conversion of a varchar data type to a datetime data type resulted in an out-of-range  [new]
needhelp001
Guest
invm, Glory, Maxx

Спасибо, разобрался.
Дело было в ограничении smalldate (до 2079 года) и датами, которые не вписывались в это ограничение, но находились в таблице.

Всем спасибо еще раз.
4 сен 15, 15:04    [18109077]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить