用于获取每个记录(Id),事件木星,地球和火星每天的事件数量的SQL查询或linq查询在第7个日期之后,因此事件数量为3(考虑时间)。
1. A event can start and end in the same day.
2. A event can start today and end after 3 days.
Table Name: **Events**
**Id** **Name** **StartDateWithTime** **EndDateWithTime**
1 Sun 2017-11-28 00:00:00.000 2017-11-29 0:00:00.000
2 Moon 2017-11-28 00:00:00.000 2017-12-01 10:00:00.000
3 Earth 2017-11-07 00:00:00.000 2017-11-30 00:40:00.000
4 Jupiter 2017-11-07 00:00:00.000 2017-11-07 20:00:00.000
5 Mars 2017-11-07 10:00:00.000 2017-12-07 20:10:00.000
SQL查询或linq查询以获取每天的事件数
答案 0 :(得分:0)
你必须执行简单的日期愤怒
select Id,Name from Events where
GETDATE () >= EndDateWithTime and GETDATE () <= StartDateWithTime
答案 1 :(得分:0)
您基本上必须每天发生COUNT
次事件,这意味着GROUPing BY
日期本身。你可以试试这个:
SELECT COUNT(*) AS NumberOfEvents,
CONVERT(DATE, event.StartDateWithTime) as StartDateWithTime
FROM Events event
GROUP BY CONVERT(DATE,event.StartDateWithTime)
ORDER BY CONVERT(DATE,event.StartDateWithTime)
你可以在这里看到 - &gt; http://rextester.com/ZFHJ5703
希望这有帮助!!!
答案 2 :(得分:0)
在Oracle SQL中,我使用table1作为我的测试表。 column3是开始日期,column4是结束日期。
SELECT TRUNC(t.column3)
, COUNT(*) AS total_events
FROM table1 t
WHERE t.column3<=t.column3 AND t.column4>=t.column3
GROUP BY TRUNC(t.column3)
ORDER BY TRUNC(t.column3)
答案 3 :(得分:-1)
您可以同时使用两者。如果您使用Linq,则需要更多代码才能编写。如果使用sql,数据库服务器将需要更多工作。 它实际上取决于您的架构。 我更喜欢sql
最好的问候