小编jum*_*izi的帖子

SQL Server返回意外的周数

我在表中有一些订单,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
Run Code Online (Sandbox Code Playgroud)

它返回了以下一些结果:

Week | Orders  
41   | 42  
42   | 110  
43   | 115  
...
...  
51   | 155  
52   | 15
Run Code Online (Sandbox Code Playgroud)

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

我有一些其他的统计数据(关闭另一个系统,而不是SQL服务器),它给了我一些其他的数据,上一周是51,我毫无疑问是正确的.如果人们都在寻找这两个问题,那么将会有一个问题!

任何人都有任何想法或知道如何排序这个?

谢谢,

t-sql sql-server-2008

8
推荐指数
2
解决办法
9921
查看次数

在 SSMS 2016 中使用正则表达式替换来修剪线条

如何使用 SSMS 2016 正则表达式替换功能删除行尾的额外空格和制表符?

编辑器内容示例:

select
    'tab'   
,   'space' 

select
    'tabs'      
,   'spaces'  
Run Code Online (Sandbox Code Playgroud)

目标:

select
    'tab'
,   'space'

select
    'tabs'
,   'spaces'
Run Code Online (Sandbox Code Playgroud)

在 SSMS 2012 中查找字符串:b*$匹配那些额外的制表符和空格,并允许我用空替换它们。SSMS 2016 开始为查找/替换功能使用某种 .net 正则表达式语法。使用\s+$几乎在 2016 年有效,但它删除了空行。

regex ssms regex-greedy ssms-2016

6
推荐指数
1
解决办法
1236
查看次数

用T-SQL转换十进制< - >二进制

如何使用T-SQL将二进制文件(存储为varchar的基数2)转换为十进制(基数10存储为int或bigint),反之亦然?

示例结果:

  • 7(dec)< - > 111(bin)
  • 136(dec)< - > 10001000(bin)
  • 2123942362(dec)< - > 1111110100110001100100111011010(bin)

t-sql sql-server

0
推荐指数
1
解决办法
2086
查看次数