|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2010, 16:57 | #1 |
Регистрация: 06.04.2009
Сообщений: 7
|
Вопрос, по вычислению стажа работы с типом Date
Здравствуйте! Такой вопрос:
У меня есть атрибуты под названием : дата устройства на работы и сегодняшняя дата, нужно вычислить стаж работы сотрудника по этим 2 атрибутам… Когда я создавала таблицы в Database Desktop все атрибуты имеют тип Date, я прописала маленький код для вычисления «сегодняшняя дата – дата устройства на работу» он мне выдает правильный ответ, но в не в том виде, который мне нужен, результат такой «12.09.1901». А по заданию нужно, чтоб выдал количество лет! Прошу помощи, буду очень благодарна. |
03.10.2010, 00:55 | #2 |
Пользователь
Регистрация: 03.10.2010
Сообщений: 77
|
Есть такие процедуры как DecodeDate и EncodeDate.
Думаю, помогут
По соотношению цена-качество, халявное пиво не имеет конкурентов.
|
03.10.2010, 10:07 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
03.10.2010, 13:47 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Да и эта разность не для всех будет верна (плюс/минус год поясню. человек, которого взяли на работу 31.12.2009 по состоянию на 1.01.2010 уже проработал ГОД (согласно Вашей формуле). Зато человек, которого взяли 1.01.2010 к 31.12.2010 отработал 0 лет (что, кстати, с точки зрения вычисления полного стажа - правильно). Sfera, существует множество возможных способов и алгоритмов решения данной задачи. Самый лучший - используя средства Вашей СУБД так составить правильную формулу, чтобы при использовании этой формулы прямо в SELECT ... формула as WorkStage - получать рабочий стаж. Либо можно это сделать на клиенте (например, как Выше было предложено, через DecodeDate получить день, месяц, год и дальше подставлять эти значения в формулу, написанную на Delphi либо, самый примитивный способ, который будет давать правильный ответ в 99.9% случаев (кстати, я не рекомендую его использовать, если получаемая величина рабочего стажа используется при финансовых/бухгалтерских расчётах): int(Date1 - Date2) - это количество полных дней между датами, тогда стаж ~~ trunc(int(Date1 - Date2)/365.25) p.s. рекомендую воспользовать поиском по данному форуму. Такие задачи здесь решались/обсуждались. А ещё, для решения задачи в рамках SQL рекомендую поискать решение на форуме SQL.RU |
|
04.10.2010, 15:57 | #5 |
Регистрация: 06.04.2009
Сообщений: 7
|
Благодарю за ответы =)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по формату Date | Vit@L | Общие вопросы Delphi | 11 | 23.03.2010 12:43 |
программа по вычислению последовательности чисел | crystalcat | Помощь студентам | 3 | 03.11.2009 22:59 |
Вопрос оптимизации работы с MS Word | Mixasik | Общие вопросы Delphi | 1 | 15.06.2009 12:13 |
Киньте пример работы с типом CHAR | zotox | Помощь студентам | 6 | 05.05.2009 16:37 |
Расчет стажа работы | John_chek | Общие вопросы Delphi | 6 | 13.04.2007 13:38 |