Подсчёт длительности MySQL

255
30 мая 2017, 00:34

Существует таблица, в которую добавляются дата начала и дата конца, а также длительность. Необходимо сделать, чтобы при добавлении длительность вычислялась сама путём вычитания даты конца от даты начала. функцию DATEDIFF() использовать при добавлении данных, насколько я понял, нельзя (как минимум, у меня это не сработало). Самое простое — создать триггер, но это решение кажется слишком топорным. Нет ли более изящного решения? Нерабочий код моей попытки создания таблицы (обратите внимание на duration):

CREATE TABLE tours(
tour_id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
departure VARCHAR(30) NOT NULL,
destination VARCHAR(30) NOT NULL,
departure_date DATE NOT NULL,
return_date DATE NOT NULL,
transport_type CHAR(1) NOT NULL,
duration DATE DATEDIFF(departure_date, return_date) NOT NULL,
price INT(7) NOT NULL,
tours_amount TINYINT NOT NULL);
Answer 1

Начиная с MySQL 5.7.6 можно использовать "Generated Columns".

Пример:

CREATE TABLE triangle (
  sidea DOUBLE,
  sideb DOUBLE,
  sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);
READ ALSO
Как удалить несколько строк в таблице mysql?

Как удалить несколько строк в таблице mysql?

В таблице есть даннные такого вида: <ul> <li><a href="#nav1">Произвольный текст</a></li> <li><a href="#nav2">Произвольный текст</a></li>...

311
Таблицы в базе данных MYSQL

Таблицы в базе данных MYSQL

Вообщем, хочу создать что-то вроде дневника

312
Не ищет русские слова/буквы

Не ищет русские слова/буквы

Всем привет,делал поиск для сайта все хорошо работает, кроме того что он отказывается искать именно русские запросы и выдает ошибку

516
Ограничить прямой доступ к JSP странице(Spring MVC)

Ограничить прямой доступ к JSP странице(Spring MVC)

Необходимо запретить пользователю прямой доступ(доступ по url из браузера) к jsp страницамПри этом мои страницы лежат в папке WEB-INF/view и все равно...

379