- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取一个查询,该查询将返回一个结果集,其中包含特定小时范围内的读取总数(在 working_hours
表中定义),具体取决于 DAYOFTHEWEEK
的日期,结果如下:
working | nonworking | weekend | date | group_id
-----------------------------------------------------------------
50.3 | 30.8 | 0 | 2015-04-01 00:00 | 7
40.3 | 60.8 | 0 | 2015-04-01 00:00 | 8
50.3 | 30.8 | 0 | 2015-04-02 00:00 | 7
40.3 | 60.8 | 0 | 2015-04-02 00:00 | 8
工作和周末范围以working_hours
存储在数据库中,隐含非工作时间范围(基本上不在
当天的其他范围之间)
表格如下:
读数表包含每小时读数,名为readings
group_id | reading | datestamp
------------------------------------------------------
7 | 30.8 | 2015-04-01 00:00
7 | 20.2 | 2015-04-01 01:00
7 | 11.2 | 2015-04-02 00:00
7 | 20.2 | 2015-04-02 01:00
8 | 26.2 | 2015-04-01 00:00
8 | 30.2 | 2015-04-01 01:00
8 | 26.2 | 2015-04-02 00:00
8 | 30.2 | 2015-04-02 01:00
时间范围存储在 working_hours
表中,日期列为 DAYOFTHEWEEK
格式(1 = 星期日,2 = 星期一等):
group_id | day | range_start | range_end | range_type_id | day_type_id
------------------------------------------------------------------------------
7 | 5 | 08:00:00 | 15:59:00 | 1 | 1
7 | 6 | 00:00:00 | 05:59:00 | 1 | 2
7 | 6 | 06:00:00 | 23:59:00 | 2 | 2
7 | 1 | 00:00:00 | 22:59:00 | 2 | 4
7 | 1 | 23:00:00 | 23:59:00 | 1 | 4
日期类型位于working_hours_day_type
表中,对我来说事情变得复杂,工作日和周末只有一个范围,但开始/结束周末有两个范围(“开始周末”第一个范围是工作时间,第二个范围是周末时间,“周末结束”第一个范围是周末时间,第二个范围是工作时间)。
id | type
------------------
1 | Weekday
2 | Start Weekend
3 | Weekend
4 | End Weekend
范围类型位于working_hours_range_type
表中:
id | type
------------------
1 | Working
2 | Weekend
我的Mysql知识仅限于简单的SELECT
、INSERT
等以及JOIN
的基础知识 - 我已经了解了 HOUR(datestamp) BETWEEN 8 AND 14
但不知道如何使用 WHERE datestamp BETWEEN '2015-04-01 00:00:00' AND '2015-04- 在父查询中迭代子查询02 23:59:00'
如果事实上就是这样完成的...
最佳答案
我不太清楚什么是工作时间或非工作时间,但这有效吗?
SELECT
sum(CASE WHEN rtype.range_type_id = 1 THEN reading ELSE 0 END) AS working
sum(CASE WHEN rtype.range_type_id = 2 THEN reading ELSE 0 END) AS nonworking
CASE WHEN r1.daynum in (7,1) THEN 1 ELSE 0 END as weekend
date(datestamp) as date
r1.group_id
FROM
(SELECT
group_id,
reading,
time(datestamp) as rTime,
case when weekday(datestamp) = 0 THEN 2 #weekday() monday to working hours monday
when weekday(datestamp) = 1 THEN 3
when weekday(datestamp) = 2 THEN 4
when weekday(datestamp) = 3 THEN 5
when weekday(datestamp) = 4 THEN 6
when weekday(datestamp) = 5 THEN 7
when weekday(datestamp) = 6 THEN 1
else NULL
END CASE AS daynum
FROM readings) AS r1
LEFT JOIN working_hours w1
ON (r1.daynum = w1.day)
AND (r1.group_id = w1.group_id)
AND (r1.rTime BETWEEN w1.range_start AND w1.range_end)
LEFT JOIN working_hours_day_type dtype
ON w1.day_type_id = dtype.id
LEFT JOIN working_hours_range_type rtype
ON w1.range_type_id = rtype.id
GROUP BY
CASE WHEN daynum in (7,1) THEN 1 ELSE 0 END,
date(datestamp) as date,
r1.group_id
关于Mysql - 使用 DAYOFWEEK 在特定日期的每小时范围内的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920014/
我想获取两个 DayOfWeeks 之间的 DayOfWeeks 列表。 例如, Input1: DayOfWeek.MONDAY Input2: DayOfWeek.WEDNESDAY 并且输出应该
有没有办法把这段代码总结成1-2行? 我的目标是返回,例如,我有一个 DayOfWeek 是星期一,我想得到之后的一天(星期二)或之后的 n 天。 switch (_RESETDAY
我正在像这样解析日期:"Sat, 30 Jan 2016 00:03:00 +0300" 但在某些日期它抛出这个异常: Caused by: java.time.DateTimeException:
一周中的某几天是否有英文(或特定于程序员的)单一字符约定,如果有的话,这是什么?我意识到这可能是一个英语问题,但我认为它对程序员特别重要。 也许像这样: Monday Mon MO M Tu
如何获取给定年份任何的一周的第一天(日期为 1 到 7,或工作日名称)? 我尝试用 JavaScript 来解决,但我接受任何其他语言。 我需要选择一年来构建完整的日历(我想使用 HTML 表格和 J
如何获取上周的 DayOfWeek 日期? 例如 我想选择 6 月 23 日星期日作为 DayOfWeek? 我只能得到这周的DayOfWeek。 这是我的代码 DateTime today = Da
我正在使用DAYOFWEEK() MySQL 中的函数,对于星期日返回1。但在我的国家,一周从星期一开始,而不是星期日。是否有机会从 MySQL 获取星期几,格式如下:(1 - 星期一,2 - 星期二
我正在寻找一种在 MySQL 中将整数 (0-6) 转换为星期几的方法,例如: EXAMPLE_FUNCTION(3) = Wednesday. DAYOFWEEK(date)函数接受一个日期并给你一
我需要将工作日名称解析为 DayOfWeek。工作日名称可以是短格式('Mon')或长格式('Monday')。 目前我想出了这样的解决方案: DateTimeFormatter dtf = Date
在工作中,我们需要生成一份 6 个月大的报告。基本上,从5月1日到11月1日,报告必须以周为基础。到目前为止,我一次只能手动完成一周... 这是我的代码 SELECT displayname, cap
我们有 DayOfWeek在标准 ISO 8601 中定义星期几的枚举命令。 我想要一个 List这些对象的顺序适合 Locale . 我们可以很容易地确定语言环境一周的第一天。 Locale loc
我正在使用 DAYOFWEEK() MySQL 中的函数,它为 sunday 返回 1。但在我的国家,一周从星期一开始,而不是星期日。是否有机会从 MySQL 获取 dayofweek 格式如下:(1
我有一个表示星期几的简单整数列表。我正在尝试检查我的实体的 Date 属性是否在选定的一周内。但是,如果我尝试在针对数据库的查询中传递它,如下所示: query.Where(e => selected
我不知道如何在 .NET 2.0 中正确本地化 DateTime.DayOfWeek。 例子: DateTime date = DateTime.Now; // Works fine string l
这可能是一个新手问题,但这里是。 我有一种方法,其中类型 DayOfWeek 列表会附加一周中的不同日期(可能是星期三和星期六、星期日、星期一和星期五等)。 给定该列表,我需要将其与日期时间参数进行比
有没有可能得到DayOfWeek针对特定文化? 有什么线索吗? 谢谢!!! 最佳答案 尝试以下操作: DateTime.Now.ToString("dddd", new System.Globaliz
我正在尝试获取一个查询,该查询将返回一个结果集,其中包含特定小时范围内的读取总数(在 working_hours 表中定义),具体取决于 DAYOFTHEWEEK 的日期,结果如下: working
我有一个每周不同日期发生的事件列表。我希望我的查询返回从今天开始按星期几排序的结果。 'Meeting_Day' = Sunday, Monday, Tuesday... 'Day_of_Week'
我有下表 Specialoffer Id (int) ValidFrom (date) ValidTo (date) SpecialOfferExcludedDays Id (int) (F
我正在尝试计算一个值,其中我从工作日和一年中的前 3 个月获得计数。 SELECT SUM(count_LP) AS down1 FROM `splittest` WHERE DAYOFWEE
我是一名优秀的程序员,十分优秀!