Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Работа с датами с запросе. (число прочтений - 4015 )
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Работа с датами с запросе.
19. Июня 2007 :: 13:45
Печать  
Ситуация следующая. В форме списка товаров (на ТП) выполняется примерно такой запрос:
Код
Выбрать все
SELECT
Спр.ID as [ТекущийЭлемент $Справочник.Номенклатура],
Спр.CODE as Код,
Спр.Descr as Наименование,
IIF(ISNULL($Серт.ДатаКонца),
    Cast("" as Date),
    IIF($Серт.ДатаОкончания>=:ТекущаяДата~~,
		$Серт.ДатаОкончания,
		Cast("" as Date)
	  )
    ) as ДатаСертификата
FROM
    $Справочник.Номенклатура as Спр
LEFT JOIN
    $Справочник.Номенклатура_Сертификаты as Серт ON Серт.ID=$Спр.Сертификат
 



Но в результате в колонке "ДатаСертификата" выводятся все даты окончаня сертификатов, т.е. не срабатывает условие
Код
Выбрать все
IIF($Серт.ДатаОкончания>=:ТекущаяДата~~,
    $Серт.ДатаОкончания,
    Cast("" as Date)
    )
 



Если пробую заменить в запросе даты на числа:
Код
Выбрать все
IIF(ISNULL($Серт.ДатаКонца),
    0,
    IIF($Серт.ДатаОкончания>=:ТекущаяДата~~,
		1,
	     -1
	  )
    ) as ДатаСертификата
 


Все работает нормально. В чем косяк-то?
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Работа с датами с запросе.
Ответ #1 - 20. Июня 2007 :: 05:34
Печать  
Хоть что-нибудь сказали бы...
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Работа с датами с запросе.
Ответ #2 - 20. Июня 2007 :: 06:04
Печать  
Или хоть скажите - как преобразовать дату в строку формата ДД.ММ.ГГ
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Работа с датами с запросе.
Ответ #3 - 20. Июня 2007 :: 06:27
Печать  
Chieftain писал(а) 20. Июня 2007 :: 06:04:
Или хоть скажите - как преобразовать дату в строку формата ДД.ММ.ГГ

Если в 1с то используй Формат, если  SQL то CONVERT
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Работа с датами с запросе.
Ответ #4 - 20. Июня 2007 :: 11:38
Печать  
Не однократно использовал это условие(IFF) - все ОК.
У тебя
$Серт.ДатаКонца $Серт.ДатаОкончания - это одно и тоже?

И почему не используешб ICASE??
  
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Работа с датами с запросе.
Ответ #5 - 20. Июня 2007 :: 11:56
Печать  
kiruha писал(а) 20. Июня 2007 :: 11:38:
У тебя
$Серт.ДатаКонца $Серт.ДатаОкончания - это одно и тоже?

Ошибся... Одно и тоже..
kiruha писал(а) 20. Июня 2007 :: 11:38:
И почему не используешб ICASE??

Исторически сложилось - еще когда на FoxPro писал
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Работа с датами с запросе.
Ответ #6 - 20. Июня 2007 :: 11:58
Печать  
В итоге сделал через DTOS и SUBSTR
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Работа с датами с запросе.
Ответ #7 - 20. Июня 2007 :: 12:37
Печать  
Код
Выбрать все
,ICASE($Серт.ДатаКонца >:ТекущаяДата~~,$Серт.ДатаКонца ,:ПустаяДата~~) as ДатаСертификата

....
ОлеДБКоманда.УстановитьТекстовыйПараметр("ПустаяДата",'01.01.2000');
 

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