Дизайн пользовательского интерфейса для хранения метаданных событий и событий
SQL TABLE DESIGN -
CREATE TABLE [dbo].[EVENTS]
([ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](255) NOT NULL)
и
CREATE TABLE [dbo].[EVENTS_META](
[ID] [int] IDENTITY(1,1) NOT NULL,
[event_id] [int] NOT NULL,
[meta_key] [varchar](255) NOT NULL,
[meta_value] [bigint] NOT NULL)
Данные о событиях
Метаданные события
Я следил за Повторяя события календаря и некоторые окончательные математические данные, и я написал следующий запрос
СПИСОК ВСЕ СОБЫТИЯ СРОКИ ДО ДАЛЬШЕ КОНЕЧНОГО ДАТА
SELECT EV.*
FROM events AS EV
RIGHT JOIN events_meta AS EM1 ON EM1.event_id = EV.id
RIGHT JOIN events_meta AS EM2 ON EM2.meta_key = 'repeat_interval_'+ CAST(EM1.id as Varchar(100))
WHERE EM1.meta_key = 'repeat_start'
AND ((1391040000 - EM1.meta_value ) % EM2.meta_value) = 0
Я ничего не получаю. Я хочу показать все даты после repeat_start с заданным интервалом.
Пример здесь 1-е событие начинается (3 января 2014 г., 10:00) unixtimestamp = 1388743200 и продолжается каждую пятницу (7 дней), мы также планируем первое мероприятие в субботу (Jan 04, 2014) 1388858400 и продолжаем раз в 7 дней (суббота)
Это может быть один раз в месяц/день/и т.д. Таким образом, мы имеем interval
, определенные как секунды.
Если я даю некоторый вклад, например, 30 января 2014 года, i.e =1391040000
(30 января 2014 00:00:00)
Ожидаемый результат
Billa Visit, 3 Jan 2014 10 A.M
Billa Visit, 4 Jan 2014 10 A.M
Billa Visit, 10 Jan 2014 10 A.M
Billa Visit, 11 января 2014 г. 10 A.M
Billa Visit, 17 Jan 2014 10 A.M
Billa Visit, 18 января 2014 г. 10 A.M
Billa Visit, 24 января 2014 г. 10 A.M
Billa Visit, 25 января 2014 г. 10 A.M