#sql #mod
Вопрос:
У меня проблема с функцией в sql.
Функция SQL:
SELECT resolved_by ,short_description ,case_id ,STATUS ,create_date ,resolved_date ,resolution, datediff(day, create_date, resolved_date) - 1 - MOD (create_date, 1) MOD(resolved_date, 1)
FROM booker.o_remedy_tickets
WHERE assigned_to_group IN ( 'emae' ) AND create_date > '2020-11-17'
В excel это работает, и функция mod выглядит так:
=NETWORKDAYS(E2,F2)-1-MOD(E2,1) MOD(F2,1)
Но я понятия не имею, как отформатировать эту функцию mod в sql.
таблица create_date имеет формат, подобный: 2020-11-11 07:58:16.0
resolved_date в формате, подобном: 2020-11-11 09:38:38.0
У меня есть ошибка:
Недопустимая операция: мод функции(метка времени без часового пояса, целое число) не существует.
Я застрял…
Если у кого-то есть какие-то идеи, я действительно ценю это.
Большое спасибо!
Комментарии:
1. Пожалуйста, объясните логику, которую вы хотите. Помогут примеры данных и желаемые результаты.
2. В какой базе данных вы хотите запустить этот SQL-код?
3. Ни MySQL, ни SQL Server не имеют прямой эквивалентной функции
NETWORKDAYS()
. Даже если вы решите свою проблему сMOD()
помощью, вы не получите количество рабочих днейDATEDIFF()
.4. Я хотел бы посчитать: Приток билетов. Это база данных с билетами, которые решаются работодателями. Я извлекаю данные из sql с синтаксисом: ВЫБЕРИТЕ resolved_by ,краткое описание ,идентификатор дела ,СТАТУС ,create_date ,resolved_date ,root_cause_details ,разрешение ИЗ booker.o_remedy_tickets, ГДЕ назначена группа В ( «emae» ) И create_date > «2020-11-06». Я получаю файл excel, а остальное я считаю в excel по формуле: СЕТЕВЫЕ дни(E2,F2)-1-MOD(E2,1) MOD(F2,1), где E2=дата создания —F2=дата разрешения. Но я понятия не имею, как преобразовать в on, чтобы весь синтаксис был подготовлен в sql без использования excel.