【发布时间】:2023-03-13 06:26:01
【问题描述】:
例如,我正在计算 SQL 中特定日期的星期
'2016-01-20' (yyyy-mm-dd) 但 SQL 返回第 4 周,这是错误的,因为今年第一周从 '2016-01-04' 开始,结果必须是第 3 周。
我认为这个问题已经产生了,因为 2015 年是 53 周的一年,有什么解决办法吗?谢谢你,我很抱歉我的英语不好
【问题讨论】:
-
为了澄清您的问题,请列出以下内容: 1)您正在使用 datepart 功能的数据库(SQL Server 或 MS Access); 2)您正在编写的具体查询; 3) 您看到的结果或错误; 4) 你期望看到的结果。
-
如果这是 SQL Server 那么
January 1 of any year defines the starting number for the week datepart, for example: DATEPART (wk, 'Jan 1, xxxx') = 1, where xxxx is any year.-msdn -
您使用的是什么 RDBMS:SQL Server、MySQL、Oracle ...?答案会有所不同。
-
假设 SQL Server - 也许您正在寻找 datepart 选项
ISO_WEEK? Here is some light reading -
根据您的问题,周从星期一开始。如果这是您的业务情况,您可能希望创建一个包含此类内容的日历表。我们的数据仓库中有一个,该字段名为 week_beginning。