【发布时间】:2018-10-04 13:12:18
【问题描述】:
这可能很简单,但我一直在想我的问题。
我需要提取周日中午 12 点到周五下午 1 点之间的特定日期范围(2018 年 1 月 - 2018 年 3 月)内的所有记录。按周分组
SELECT col1,
Sum(col2)
FROM (SELECT *
FROM (SELECT col1,
col2,
Datename(dw, [date_col]) AS day_of_week,
date_col
FROM table
WHERE Datename(dw, [update_date]) != 'Saturday'
--eliminate Saturday records
) a
WHERE ( Cast(update_date AS TIME) < '12:00'
AND day_of_week != 'Sunday' )
--eliminate Sunday records before noon
) b
WHERE ( day_of_week != 'Friday'
OR Cast(update_date AS TIME) > '13:00' )
--eliminate Friday records after 1PM
【问题讨论】:
-
标记您正在使用的 DBMS(即
MySQL、SQL-Server等)。 -
样本数据最好使用DDL + DML。请edit您的问题包括它,您当前的尝试和您想要的结果。更多详情,read this.
-
select @@datefirst给你什么?与星期几相关的功能依赖于此。 -
选择@@datefirst 返回7
-
@Salman,语言没问题,但是日期优先设置会如何影响星期名称?
标签: sql sql-server date datetime