Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Парус - сервис _ Флейм _ Работа С Датами В Foxpro / Sql / Excel

Автор: Рокун Анатолий 4.7.2008, 14:22

Есть такие данные:
год месяц сдвиг(мес)
08 01 -1
08 05 4
08 06 -7
08 07 6
....

нужно получить
год месяц год(за) месяц(за)
08 01 07 12
08 05 08 09
08 06 07 11
08 07 09 01
....

Как это получить на FOXPRO (прцедурами или запросами)?
Как это получить на SQL запросами?
Как это получить в EXCEL запросами?

Вопрос очень срочный!!!

Автор: Ким Александр 7.7.2008, 9:59

1. В FoxPro можно воспользоваться функцией GoMonth().

2. В SQL боюсь не получится: сначала необходимо вычислять конкретную дату и после формировать запрос. Впрочем как в первом случае, но в первом случае SQL выполняется из под FoxPro, и допускается использовать его (FoxPro-шные) функции прямо в запросе.

3. В Excel-е запросы будете составлять, используя VBA. Можно воспользоваться ф-ции DateSerial(год, месяц, день). В качестве месяца и/или дня можно использовать "неадекватные" значения, результат ф-ции DateSerial() будет "нормализованное" значение даты.

Например, имея 01-й месяц нужно получить со сдвигом -1 итого имеем 1-1=0 (номер месяца равен 0)
D = DateSerial(2008, 0, 31)
' здесь D будет равно 31.12.2007
' и можно, например, сформировать строку вида
C = "#" & Month(D) & "/" & Day(D) & "/" & Year(D) & "#"
' здесь C будет равно "#12/31/2007#"

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)