我有一张如下表所示的表格:
注意:MAX last_orderdate是20131015,格式为yyyymmdd。
我想将最终结果显示如下:
是否有任何查询可以帮助我,因为我有200000多条记录。
非常感谢你花时间看我的问题。
答案 0 :(得分:0)
尝试这样的事情:
declare @a date
set @a='20130105'
declare @b date
set @b='20131015'
select datediff(d,@a,@b) as date_diff,datediff(m,@a,@b) as month_diff
答案 1 :(得分:0)
对于DATEDIFF()功能
试试这个:
UPDATE A
SET A.monthDiff = DATEDIFF(mm, CONVERT(DATE, A.orderDate, 112), B.lastOrderDate),
A.dayDiff = DATEDIFF(dd, CONVERT(DATE, A.orderDate, 112), B.lastOrderDate)
FROM tableA A, (SELECT MAX(CONVERT(DATE, orderDate, 112)) lastOrderDate FROM tableA) B
<强>输出强>
| ID | ORDERDATE | MONTHDIFF | DAYDIFF |
|----|-----------|-----------|---------|
| 1 | 20130105 | 9 | 283 |
| 2 | 20130205 | 8 | 252 |
| 3 | 20130305 | 7 | 224 |
| 4 | 20130909 | 1 | 36 |
| 5 | 20131001 | 0 | 14 |
| 6 | 20131015 | 0 | 0 |
答案 2 :(得分:0)
试试这个。
select DATEDIFF(DAYOFYEAR,'20131015','20131125')
。
DAYOFYEAR
表示天数。取决于您的要求,您可以使用 DATEDIFF