Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 15:28   #1
Paraz1t
 
Регистрация: 16.08.2011
Сообщений: 6
Печаль Подсчет трудового стажа

привет всем!
помогите плиз, над посчитать стаж работы.
к примеру на работу приняли 12 мая 2001 ---- а уволили 24 ноября 2008 === так вот мне надо что бы он не суму дней лет и месяцев выбивал, а просто показал что тот рабочий проработал лет: 7 | месяцев: 6 | дней: 13
Paraz1t вне форума Ответить с цитированием
Старый 26.06.2012, 16:26   #2
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

А что такое "суму дней лет и месяцев"?
Karabash вне форума Ответить с цитированием
Старый 26.06.2012, 17:43   #3
Paraz1t
 
Регистрация: 16.08.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Karabash Посмотреть сообщение
А что такое "суму дней лет и месяцев"?
ну я как бы написал запрос который суммирует проработанные дни. в смысле .... если стаж 1 год и месяц он выдаст что проработал 395 дне (365+30) --- меня так не устраивает(
Paraz1t вне форума Ответить с цитированием
Старый 26.06.2012, 18:46   #4
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

Какая СУБД используется?
Karabash вне форума Ответить с цитированием
Старый 26.06.2012, 19:50   #5
Paraz1t
 
Регистрация: 16.08.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Karabash Посмотреть сообщение
Какая СУБД используется?
база sql и работаю через NaviCat
Paraz1t вне форума Ответить с цитированием
Старый 26.06.2012, 20:13   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Писать пользовательскую функцию, два параметра - дата с и дата по, в которой используя DATEDIFF формировать требуемую строку

Вот набросок, немного подправить и нормальный текст можно выдавать (типа 1 год, 15 лет и т.п.)
Код:
CREATE FUNCTION ufCalcStag (@DateFrom datetime, @DateTo datetime) RETURNS varchar(100) AS
BEGIN
  DECLARE @Date1 datetime,
          @Date2 datetime,
          @Date0 datetime,
          @Years int,
          @Months int,
          @Days int
  IF @DateFrom>@DateTo RETURN ''
  SET @Date1=@DateFrom
  SET @Date2=@DateTo
  -- лет
  SET @Years=DATEDIFF(Year,@Date1,@Date2)
  SET @Date0=DATEADD(Year,@Years,@Date1)
  IF @Date0>@Date2 BEGIN
    SET @Years=@Years-1
    SET @Date1=DATEADD(Year,@Years,@Date1)
  END
  ELSE SET @Date1=@Date0
  -- месяцев
  SET @Months=DATEDIFF(Month,@Date1,@Date2)
  SET @Date0=DATEADD(Month,@Months,@Date1)
  IF @Date0>@Date2 BEGIN
    SET @Months=@Months-1
    SET @Date1=DATEADD(Month,@Months,@Date1)
  END
  ELSE SET @Date1=@Date0
  -- дней
  SET @Days=DATEDIFF(Day,@Date1,@Date2)
  SET @Date0=DATEADD(Day,@Days,@Date1)
  IF @Date0>@Date2 SET @Days=@Days-1
  -- выход
  RETURN CAST(@Years as varchar)+' лет, '+CAST(@Months as varchar)+' месяцев, '+CAST(@Days as varchar)+' дней'
END
GO

SELECT dbo.ufCalcStag('20070511','20120601')

5 лет, 0 месяцев, 21 дней
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Stilet; 27.06.2012 в 21:41.
Аватар вне форума Ответить с цитированием
Старый 27.06.2012, 11:40   #7
Paraz1t
 
Регистрация: 16.08.2011
Сообщений: 6
По умолчанию

огромное спс, щя по пробую
Paraz1t вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет Ras2im Microsoft Office Excel 7 10.03.2011 13:03
Сортировка по возрастанию и убыванию стажа betirsolt БД в Delphi 3 16.11.2010 17:52
Вопрос, по вычислению стажа работы с типом Date Sfera БД в Delphi 4 04.10.2010 15:57
Подсчет r2n Общие вопросы Delphi 4 01.05.2007 05:48
Расчет стажа работы John_chek Общие вопросы Delphi 6 13.04.2007 13:38