sql-server-2008 - SQL Server 返回意外的周数

标签 sql-server-2008 tsql

我在表中有一些订单,2011 年的最后订单日期是 12 月 20 日。

我正在使用 sql 命令来计算给定周内的订单数:

SELECT CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103))) AS week, 
  COUNT(1) as orders 
FROM order_table 
where DATENAME(YEAR,convert(datetime,order_date,103)) = '2011' 
GROUP BY CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103))) 
order by week asc

它返回给我以下一些结果:
Week | Orders  
41   | 42  
42   | 110  
43   | 115  
...
...  
51   | 155  
52   | 15

问题是我提到的 2011 年的最后一个订单日期是 2011 年 12 月 20 日,不能是第 52 周,所以必须是第 51 周。

我有一些其他统计数据(来自另一个系统,而不是 SQL 服务器),它给了我一些其他数字,上周是 51,我毫不怀疑这是正确的。因此,如果人们正在寻找两者,将会有疑问!

任何人都有任何想法或知道如何对此进行排序?

谢谢,

最佳答案

2011 年 12 月 20 日的 iso_week 是 51。所以也许这就是您所需要的。

SELECT datepart(iso_week, '2011-12-20')

关于sql-server-2008 - SQL Server 返回意外的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620970/

相关文章:

sql-server-2008 - SQL Server Management Studio 对结果 Pane 中的数据进行排序

sql - 将非标准联接转换为标准联接

sql - 带有 UPDATE SET CASE 语句的 T-SQL MERGE - 没有 ELSE 会发生什么?

sql - 索引中列的顺序有多重要?

sql-server - 为什么 DROP TABLE 在 SELECT INTO 之前似乎没有生效?

c# - EF6 导入存储过程失败

c# - 如何添加营业时间?

sql-server - SQL : Allow NULL on two columns but not both

sql-server - 围绕 xml 或逐行添加 xml 元素的最佳方法

sql - 从表贷方借方列中选择运行余额