2016-08-23 5 views
-1
select 
    DateDiff(Day, convert(datetime,'2/1/'+cast(Year(BeginDate) as varchar)), 
    convert(datetime,'2/29/'+cast(Year(BeginDate) as varchar))) 
from [table] 
where (begindate is not null and enddate is not null) 

Я бегу в ошибкуПревращение символьного типа данных в тип данных даты и времени привело к вне-диапазона даты и времени value.sql

Превращение символьного типа данных, тип данных datetime привел к значению даты и времени вне диапазона.

Пример BeginDate: 2014-02-12 00: 00: 00,000 пример EndDate: 2014-02-16 00: 00: 00,000

Пожалуйста, помогите мне точку в направлении в нужных направлениях, благодаря ,

+0

Ну, если пример «BeginDate» равен «2014-02-12», то как вы ожидаете, что «2/29/2014» будет преобразован в дату-время ?. 2014 это ** не ** високосный год – Lamak

+0

хорошо я b darned, спасибо, что поймал это. – user3083228

ответ

-1

Эта ошибка объясняется тем, как различные языки представляют и анализируют даты на SQL Server. Если на английском языке задан язык по умолчанию, SQL Server ожидает даты в MM/DD/YYYYformat. Другие языки могут ожидать формат DD/MM/YYYY. SQL Server выкинет эту ошибку в случае несоответствия между предоставленным и ожидаемым SQL Server.

+0

Plz. подумайте о том, чтобы опубликовать пример в своем ответе – Trimax