powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 32, страница 2 из 2
Помогите с запросом
    #36225520
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
date(val(zHis.year), val(zHis.month),  1 ) <={^ 2008 - 12 - 31 }

Одако будет ошибка, если поля year и month содержат нули или буквы. Функция DATE() не может принимать в качестве параметров нули.

Другой вариант конвертации строки в дату - это функция CTOD(), но ее работа зависит от текущей настройки SET DATE.

Наконец, нет никакой необходимости конвертировать именно в дату. Можно сформировать строку вида "ГГГГММДД". Такие строки корректно выполняют сравнение на больше/меньше

Код: plaintext
zHis.year + zHis.month + "01" <= "20081231"

Если поля year и month имеют размерность больше 4 и 2 символов соответственно, то следует еще отсечь возможные ведущие и концевые пробелы

Код: plaintext
AllTrim(zHis.year) + AllTrim(zHis.month) + "01" <= "20081231"
...
Рейтинг: 0 / 0
Помогите с запросом
    #36225567
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может так stod(string(zHis.year,zHis.month,'01')) ?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36225819
Бонни
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конструкция типа str(zHis.year,4)+"-"+str(zHis.month,2)+"-01" выдаёт строку вида: '2009- 7-01'
Поэтому вопроса 2:
- как заменить в строке пробел на ноль (ф-ция что-то типа sub в sql) - нужна подсказка;
- как строку такого вида '2009-07-01' преобразовать к типу даты;
...
Рейтинг: 0 / 0
Помогите с запросом
    #36225822
Бонни
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант : zHis.year + zHis.month + "01" <= "20081231"
мне нравится, поэтому собсно - как заменить пробел на ноль?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36225894
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бонни,

zHis.year + padl(zHis.month,2,"0") + "01" <= "20081231"
Если в году 2 цифры, то это отдельная песня, там ещё надо догадываться про столетие.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36226668
Бонни
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не-не-не, в годе как раз 4. С ним порядок. Волнует только месяц : там или 1 или 2 цифры. Требуется только после после конверта в строку месяца заменить образующийся символ пробела на ноль. Какой ф-цией? Должен же быть какой-то аналог Replace ...
...
Рейтинг: 0 / 0
Помогите с запросом
    #36226678
Бонни
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir , спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]