Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Ошибка 29 февраля (число прочтений - 2756 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Ошибка 29 февраля
29. Февраля 2008 :: 11:54
Печать  
В запросе есть выражение
|CAST(left($Кар.ДатаВыезд,8) as DateTime) as ДатаВыезда
Если в документе попадается 29 февраля 2008г.
выскакивает ошибка
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value
Т.е. 29 не существует. Как бороться?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка 29 февраля
Ответ #1 - 29. Февраля 2008 :: 11:58
Печать  
29-е существует. А само char data можно увидеть?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка 29 февраля
Ответ #2 - 29. Февраля 2008 :: 12:01
Печать  
Хотя да - на двойном преобразовании дата-строка-дата выскакивает такая ошибка - после left(..., 8) от года остаётся только двойка, а в 2002 году 29 февраля естественно не было.  Подмигивание
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Ошибка 29 февраля
Ответ #3 - 29. Февраля 2008 :: 12:03
Печать  
char data выглядит как "Feb 29 2"
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Ошибка 29 февраля
Ответ #4 - 29. Февраля 2008 :: 12:04
Печать  
и что делать?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка 29 февраля
Ответ #5 - 29. Февраля 2008 :: 12:05
Печать  
RuporAbsurda писал(а) 29. Февраля 2008 :: 12:04:
и что делать?

Получать дату просто как
|$Кар.ДатаВыезд as ДатаВыезда
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Ошибка 29 февраля
Ответ #6 - 29. Февраля 2008 :: 12:07
Печать  
А ну да нужно поставить left(...,11)!!!
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка 29 февраля
Ответ #7 - 29. Февраля 2008 :: 13:05
Печать  
Какое значение храниться в "Кар.ДатаВыезд" (строка или дата), какой формат строки (ISO или другой)?
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Ошибка 29 февраля
Ответ #8 - 29. Февраля 2008 :: 13:08
Печать  
Если ISO, тогда:
Код
Выбрать все
|Convert(DateTime,left($Кар.ДатаВыезд,8),112) as ДатаВыезда 

  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать