powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно написать функци.
1 сообщений из 1, страница 1 из 1
Как правильно написать функци.
    #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
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как правильно написать функци.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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