我有一个名为日历表的表,其中包含年,月,周,日和日等列。 day field的值为1,2,.... 7。
我想从中创造时间跨度。比如从周一到周二(12:00),周二(12:00)到周三(17:00)。一周之内
为此,我正在写一个像
这样的查询SELECT
year,
week,
(SELECT date WHERE day = 1) AS st_date,
(SELECT date WHERE day = 2) AS end_date
FROM calendar
GROUP BY year, week
我知道上面的语法不正确,请告诉我是否有任何可能的语法来解决这个问题?
实际的表定义是日语,所以我用英文列名替换它。这是一个与我们的常规日历不同的日历表
在注册工具中,我想为用户创建一个时间段,在该时间段内用户不能注册。
我的原始表格如下:
Date Year Month Week Day -------------------------------------------- 2013/06/19 34 06 44 3 2013/06/21 34 07 44 5 2013/06/24 34 07 45 1 2013/06/25 34 07 45 2 2013/06/26 34 07 45 3
我喜欢输出
Year Week A_reg_range_st A_reg_range_end B_reg_range_st B_reg_range_end ----------------------------------------------- 34 45 2013/06/24 00:00:00 2013/06/25 12:00:00 2013/06/25 12:00:00 2013/06/26 17:00:00
答案 0 :(得分:1)
SELECT
year,
week,
CASE WHEN (day = 1) THEN date AS st_date,
CASE WHEN (day = 2) THEN date AS end_date
FROM calendar
GROUP BY year, week