|
|
|
Работа с датами
|
|||
|---|---|---|---|
|
#18+
Всем привет. Работаю с IB 6.0 Вот какая проблема. Есть два поля (тип Date) Нужно в зависимости от первого поля, второе увеличивать на 5 лет. (если например значение первого поля 01.01.2002, то второе автоматом 01.01.2007). На прежней базе(Dialect 1) у меня проходила такая процедура CREATE PROCEDURE YEAR1( ADATE DATE) RETURNS ( RESULT INTEGER) AS DECLARE VARIABLE ElapsedDays INTEGER; DECLARE VARIABLE ElapsedYears INTEGER; BEGIN WHILE(CAST(ADate AS VARCHAR(5)) <> "1-JAN") DO ADate = ADate - 1; ElapsedDays = ADate -"1.1.1901"; Result = (ElapsedDays *400 /146097)+1901; END Она выбирала значение года в строке. Сейчас (Dialect 3) не выходит. Пишет ошибку.Помогите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2003, 15:14 |
|
||
|
Работа с датами
|
|||
|---|---|---|---|
|
#18+
Можно так, используя SUBSTR из стандартных UDF Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Если увеличивать надо было бы ровно на 4 года или кратно 4, то здесь конечно все проще (ровно 1 високосный год): Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2003, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1580642]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
129ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 420ms |

| 0 / 0 |
