我需要在我的dim_date中添加新的业务wee,实际上我有一个月中的星期,如下表所示,每7天计算一次。
但是对于这个商业周专栏,一周应该从星期一开始,到星期日结束,即使第一周只有一天(当一个月从星期日开始时),但如果月份从星期五开始,我应该将其视为该月的第一周。
你有什么建议来计算这个吗?谢谢
我希望我想出的这个解决方案可以在未来帮助你,或者我们可以讨论并改进这个解决方案:
WITH sample_data AS (SELECT
date,
EXTRACT(WEEK FROM date) AS week_of_year,
DATE_TRUNC(date, MONTH) AS FIRST_DAY_OF_MONTH
FROM (SELECT date
FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2022-04-01', '2022-04-19', INTERVAL 1 DAY)) AS date))
SELECT
date,
FORMAT_DATE('%A', date) as day_name,
CASE
WHEN CAST(EXTRACT(WEEK(MONDAY) FROM d.date) AS INT) = 0 AND d.WEEK_OF_YEAR IN (52, 53) THEN 1
WHEN CAST(EXTRACT(WEEK(MONDAY) FROM d.FIRST_DAY_OF_MONTH) AS INT) = 0 THEN EXTRACT(WEEK(MONDAY) FROM d.date) + 1
ELSE (d.WEEK_OF_YEAR - CAST(EXTRACT(WEEK(MONDAY) FROM d.FIRST_DAY_OF_MONTH) AS INT)) + 1
END AS BUSINESS_WEEK_OF_MONTH
FROM sample_data d;
此查询获取从2002-04-01
到2002-04-19
的周数。本周从周一开始,周日结束。您可以看到以下示例:
with sample_data as (
SELECT date FROM UNNEST(generate_timestamp_array('2022-04-01', '2022-04-19', INTERVAL 1 DAY)) as date
)
select
date
, extract(week(MONDAY) from date)-(extract(MONTh from date)-1)*4 AS days_diff
, FORMAT_DATE('%A', date)
from sample_data
你可以看到结果。
您需要使用EXTRACT
函数。
问题内容: 我在我的应用程序中使用了自定义日历。我已为用户提供了选择一周中第一天的选项,可能是: 我想获取一个月中的星期数-取决于星期几的开始时间,而不是星期几的默认值- 。 码: 问题答案: 尝试 在您的情况下,您可能需要执行以下操作: 并用诸如
我在本教程的帮助下制作了日历:http://droidwalk.blogspot.it/2012/11/android-calendar-sample.html ..但是这个日历从星期天开始,我想从星期一开始。。我试图改变价值观在函数中设置对象GregorianCalendar,但它不会给出所需的结果。本周从周一开始,但在某些月份,我们失去了第一周。我发现了一个类似的问题:从周一开始制作日历,
问题内容: 我目前正在使用vbscript函数以2/12/2009格式获取本周和上周的第一天值。我想知道是否可以使用SQL查询。 问题答案: 这些语句应该在TSQL中完成您想要的操作。请注意,这些报表基于当前日期。您可以将getdate()替换为所需的任何日期:
问题内容: 我在这个问题上看到了一些变体,但我相信这个问题尚未得到解答。 我需要获取一周的开始日期和结束日期,并由年份和星期数选择(而不是日期) 例: 输入: 输出: 返回值将类似于一个数组,其中第一个条目是星期开始日期,第二个条目是结束日期。 可选:当我们需要时,日期格式必须为(正常日期格式,无前导零。 我尝试编辑几乎可以完成我想要的功能,但是到目前为止我还没有运气。 请帮帮我,谢谢。 问题答案
也许我想多了。我想每周一上午9点发送本地通知,直到满足某些条件。我知道这可以通过设置的和组件来完成。我遇到的问题是我将传递给的值取决于正在使用的。如果我理解正确,则取决于用户的设置。例如,如果用户的日历周从周日开始,我会传递1到,但如果一周从周六开始,我会传递2。 我的问题是,我该如何解释时区、夏令时和周开始日之类的事情?
我正在尝试为我们的财务部门生成一些代码,他们需要一个字段,该字段将为他们提供一年中的当前一周,但以星期天为基础,这是一周的第一天。例如01-25-16(MM dd yyyy)将是第4周。然而,当我尝试使用和