Проблема в написании оператора SQL - PullRequest
0 голосов
/ 04 августа 2011

У меня есть таблица MySQL с именем Hotel.в этом у меня есть следующие поля ID, hotelName, Address, YearOfEstablishment.

YearOfEstablishment имеет тип Date, и он будет хранить дату как 2010-12-26.Мне нужно найти разницу между датами и SQL для этого следующим образом:

SELECT DATEDIFF('2011-08-08','2010-07-26');

Ответ на вышеуказанный запрос будет дан в днях, как, например, разница между2 даты могут быть 120 дней, мне нужно показать это в Years.Хотелось бы разделить значение 120 на 365 и указать количество лет.Как мне написать оператор SQL для этого?

2.) Теперь мне нужно написать другой SQL, который бы отображал все столбцы таблицы Hotel и Year difference values (что объясняется выше).Как мне написать SQL для этого?

(я использую MySQL)

Ответы [ 3 ]

1 голос
/ 04 августа 2011
  1. SELECT DATEDIFF('2011-08-08','2010-07-26') / 365;
  2. SELECT ID,hotelName,Address,YearOfEstablishment, DATEDIFF(YearOfEstablishment,'2010-07-26') / 365 AS years FROM Hotel;

Однако следует знать, что в среднем год имеет 365,2425 дней .

А если ваша ссылочная дата и время сейчас, просто используйте NOW(): SELECT DATEDIFF('2011-08-08',NOW()) / 365;.

1 голос
/ 04 августа 2011

Вы должны иметь возможность использовать такой запрос:

SELECT ID, hotelName, Address, YearOfEstablishment, (DATEDIFF(YearOfEstablishment, '2010-07-26')/365) AS differenceInYears
0 голосов
/ 04 августа 2011

Попробуйте это

SELECT MOD (DATEDIFF('2011-08-08','2010-07-26'), 365) ;

...