Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно написать функци. / 1 сообщений из 1, страница 1 из 1
18.10.2016, 15:55
    #39329069
Art_Ugor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно написать функци.
Добрый день подскажите как правильно написать функцию
есть 2 куска скрипта
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
datediff (date(g.solvedate),date(g.date)) 
								-truncate((case when date(g.solvedate)=date(g.date) 
										then (case when (weekday(g.date) = 5 or weekday(g.date) = 6) 
													then 1 
													else 0 
											  end)
										else case when (week(date(g.solvedate),1) = week(date(g.date),1) and date(g.solvedate)-date(g.date) < 7) 
												   then (case when (weekday(g.solvedate) = 5) 
															  then 1 
															  when (weekday(g.solvedate) = 6) 
															  then 2 
															  else 0  
														 end) 
												   else  case when (6-weekday(date(g.date)) = 0) 
															  then 1 
															  else 2 
														 end 
														+case when (6-weekday(date(g.solvedate))=1) 
															  then 1 
															  when (6-weekday(date(g.solvedate))=0) 
															  then 2 
															  else 0 
														 end 
													    +(datediff (date(g.solvedate),date(g.date))-(6-weekday(date(g.date)))-1-weekday(date(g.solvedate)))/7*2 
											  end 
								   end),0) AS workday
###################################################################################################################
round((case   when g1.workday = 0 and date(g.solvedate)=date(g.date)
	                    then (case when time(g.date) < '06:00:00' 
								          then time_to_sec (timediff (time(g.solvedate),'06:00:00')) 
								          else time_to_sec (timediff(g.solvedate,g.date))	
							         end)
	                    when g1.workday = 1 
                       then (case when time(g.date) < '06:00:00' 
								  then time_to_sec (timediff (time(g.solvedate),'06:00:00')) 
								  else time_to_sec (timediff(g.solvedate,g.date))	
							 end)
					   when  g1.workday = 2
                       then (case when time(g.date) < '06:00:00' 
								  then time_to_sec (timediff ('18:00:00','06:00:00')) 
								  else time_to_sec (timediff('18:00:00',time(g.date)))	
							 end) + time_to_sec (timediff(time(g.solvedate),'06:00:00'))
					   else (case when time(g.date) < '06:00:00' 
								  then time_to_sec (timediff ('18:00:00','06:00:00')) 
								  else time_to_sec (timediff('18:00:00',time(g.date)))	
						     end) + (g1.workday-2)*8 + time_to_sec (timediff(time(g.solvedate),'06:00:00'))
                 end) / 3600,1)
#######################################################################################################################		


первый расчитывает разность между двумя датами без учета выоходных, второй расчитывает разность между двумя датами в рабочих часа (без учета не рабочего времени и выходных) Подскажите как написать функцию что бы считалась разность межу любыми двумя датами в рабочих часах что бы постоянно не подставлять разные даты в скрипт.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно написать функци. / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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