如何在给定日期范围之间获得每个日期的第一个和最后一个值的子句 [英] How do I get substarction of first and last value of each date between a given date range

查看:51
本文介绍了如何在给定日期范围之间获得每个日期的第一个和最后一个值的子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

How do i get substarction of first and last value of each date between a given date range




 This is how my table looks like.

2016-09-01 00:00:00.000	2016-09-01 20:20:04.000	410128	1
2016-09-01 00:00:00.000	2016-09-01 20:20:04.000	410128	2
2016-09-01 00:00:00.000	2016-09-01 20:20:48.000	410128	3
2016-09-01 00:00:00.000	2016-09-01 20:21:05.000	410128	4
2016-09-01 00:00:00.000	2016-09-01 20:21:17.000	410128	5
2016-09-01 00:00:00.000	2016-09-01 20:21:31.000	410172	6
2016-09-01 00:00:00.000	2016-09-01 20:21:46.000	410210	7
2016-09-01 00:00:00.000	2016-09-01 20:22:14.000	410374	8
2016-09-01 00:00:00.000	2016-09-01 20:22:33.000	410377	9
2016-09-01 00:00:00.000	2016-09-01 20:22:45.000	410377	10
2016-09-01 00:00:00.000	2016-09-01 20:22:57.000	410406	11
2016-09-01 00:00:00.000	2016-09-01 20:23:14.000	410561	12
2016-09-01 00:00:00.000	2016-09-01 20:23:44.000	410777	13
2016-09-01 00:00:00.000	2016-09-01 20:24:09.000	410951	14
2016-09-01 00:00:00.000	2016-09-01 20:24:09.000	410951	15
2016-09-01 00:00:00.000	2016-09-01 20:24:37.000	410951	16
2016-09-01 00:00:00.000	2016-09-01 20:24:37.000	410951	17
2016-09-01 00:00:00.000	2016-09-01 20:25:14.000	410951	18
2016-09-01 00:00:00.000	2016-09-01 20:25:27.000	410966	19
2016-09-01 00:00:00.000	2016-09-01 20:25:41.000	411024	20
2016-09-01 00:00:00.000	2016-09-01 20:25:53.000	411062	21
2016-09-01 00:00:00.000	2016-09-01 20:26:14.000	411227	22
2016-09-01 00:00:00.000	2016-09-01 20:26:44.000	411503	23
2016-09-01 00:00:00.000	2016-09-01 20:27:14.000	411563	24
2016-09-01 00:00:00.000	2016-09-01 20:27:40.000	411593	25
2016-09-01 00:00:00.000	2016-09-01 20:27:52.000	411623	26
2016-09-01 00:00:00.000	2016-09-01 20:28:14.000	411633	27
2016-09-01 00:00:00.000	2016-09-01 20:28:44.000	411717	28
2016-09-01 00:00:00.000	2016-09-01 20:28:56.000	411717	29
2016-09-01 00:00:00.000	2016-09-01 20:29:14.000	411804	30
2016-09-01 00:00:00.000	2016-09-01 20:29:44.000	411918	31
2016-09-01 00:00:00.000	2016-09-01 20:30:14.000	411945	32
2016-09-01 00:00:00.000	2016-09-01 20:30:44.000	412098	33
2016-09-01 00:00:00.000	2016-09-01 20:31:14.000	412231	34
2016-09-01 00:00:00.000	2016-09-01 20:31:44.000	412310	35
2016-09-01 00:00:00.000	2016-09-01 20:32:00.000	412315	36
2016-09-01 00:00:00.000	2016-09-01 20:32:12.000	412349	37
2016-09-01 00:00:00.000	2016-09-01 20:32:44.000	412351	38
2016-09-01 00:00:00.000	2016-09-01 20:33:14.000	412421	39
2016-09-01 00:00:00.000	2016-09-01 20:33:44.000	412452	40
2016-09-01 00:00:00.000	2016-09-01 20:34:14.000	412486	41
2016-09-01 00:00:00.000	2016-09-01 20:34:44.000	412486	42
2016-09-01 00:00:00.000	2016-09-01 20:35:14.000	412539	43
2016-09-01 00:00:00.000	2016-09-01 20:35:44.000	412539	44
2016-09-01 00:00:00.000	2016-09-01 20:36:14.000	412562	45
2016-09-01 00:00:00.000	2016-09-01 20:36:44.000	412590	46
2016-09-01 00:00:00.000	2016-09-01 20:37:05.000	412677	47
2016-09-01 00:00:00.000	2016-09-01 20:37:18.000	412685	48
2016-09-01 00:00:00.000	2016-09-01 20:37:35.000	412703	49
2016-09-01 00:00:00.000	2016-09-01 20:38:14.000	412774	50
2016-09-01 00:00:00.000	2016-09-01 20:38:44.000	412796	51
2016-09-01 00:00:00.000	2016-09-01 20:39:02.000	412848	52
2016-09-01 00:00:00.000	2016-09-01 20:39:15.000	412913	53
2016-09-01 00:00:00.000	2016-09-01 20:39:44.000	413097	54
2016-09-01 00:00:00.000	2016-09-01 20:40:14.000	413322	55
2016-09-01 00:00:00.000	2016-09-01 20:40:44.000	413335	56
2016-09-01 00:00:00.000	2016-09-01 20:41:14.000	413472	57
2016-09-01 00:00:00.000	2016-09-01 20:41:44.000	413799	58
2016-09-01 00:00:00.000	2016-09-01 20:42:14.000	414034	59
2016-09-01 00:00:00.000	2016-09-01 20:42:44.000	414177	60
2016-09-01 00:00:00.000	2016-09-01 20:43:14.000	414360	61
2016-09-01 00:00:00.000	2016-09-01 20:44:33.000	415233	62
2016-09-01 00:00:00.000	2016-09-01 20:44:46.000	415371	63
2016-09-01 00:00:00.000	2016-09-01 20:45:14.000	415458	64
2016-09-01 00:00:00.000	2016-09-01 20:45:44.000	415458	65
2016-09-01 00:00:00.000	2016-09-01 20:46:14.000	415458	66
2016-09-01 00:00:00.000	2016-09-01 20:46:42.000	415482	67
2016-09-01 00:00:00.000	2016-09-01 20:46:55.000	415558	68
2016-09-01 00:00:00.000	2016-09-01 20:47:14.000	415678	69
2016-09-01 00:00:00.000	2016-09-01 20:47:32.000	415808	70
2016-09-01 00:00:00.000	2016-09-01 20:47:47.000	415915	71
2016-09-01 00:00:00.000	2016-09-01 20:48:14.000	416117	72
2016-09-01 00:00:00.000	2016-09-01 20:48:39.000	416351	73
2016-09-01 00:00:00.000	2016-09-01 20:49:00.000	416526	74
2016-09-01 00:00:00.000	2016-09-01 20:49:15.000	416609	75
2016-09-01 00:00:00.000	2016-09-01 20:49:34.000	416667	76
2016-09-01 00:00:00.000	2016-09-01 20:49:58.000	416669	77
2016-09-01 00:00:00.000	2016-09-01 20:50:14.000	416669	78
2016-09-01 00:00:00.000	2016-09-01 20:50:32.000	416671	79
2016-09-01 00:00:00.000	2016-09-01 20:50:47.000	416693	80
2016-09-01 00:00:00.000	2016-09-01 20:51:14.000	416806	81
2016-09-01 00:00:00.000	2016-09-01 20:51:44.000	416935	82
2016-09-01 00:00:00.000	2016-09-01 20:52:00.000	416973	83
2016-09-01 00:00:00.000	2016-09-01 20:52:14.000	417012	84
2016-09-01 00:00:00.000	2016-09-01 20:52:44.000	417110	85
2016-09-01 00:00:00.000	2016-09-01 20:53:14.000	417121	86
2016-09-01 00:00:00.000	2016-09-01 20:53:44.000	417128	87
2016-09-01 00:00:00.000	2016-09-01 20:54:14.000	417128	88
2016-09-01 00:00:00.000	2016-09-01 20:54:44.000	417128	89
2016-09-01 00:00:00.000	2016-09-01 20:55:14.000	417138	90
2016-09-01 00:00:00.000	2016-09-01 20:55:44.000	417142	91
2016-09-01 00:00:00.000	2016-09-01 20:56:14.000	417142	92
2016-09-01 00:00:00.000	2016-09-01 20:56:33.000	417186	93
2016-09-01 00:00:00.000	2016-09-01 20:56:46.000	417217	94
2016-09-01 00:00:00.000	2016-09-01 20:57:14.000	417294	95
2016-09-01 00:00:00.000	2016-09-01 20:57:31.000	417361	96
2016-09-01 00:00:00.000	2016-09-01 20:57:44.000	417434	97
2016-09-01 00:00:00.000	2016-09-01 20:58:14.000	417575	98
2016-09-01 00:00:00.000	2016-09-01 20:58:44.000	417764	99
2016-09-01 00:00:00.000	2016-09-01 20:58:57.000	417813	100
2016-09-01 00:00:00.000	2016-09-01 20:59:09.000	417848	101
2016-09-01 00:00:00.000	2016-09-01 20:59:26.000	417901	102
2016-09-01 00:00:00.000	2016-09-01 20:59:39.000	417945	103
2016-09-01 00:00:00.000	2016-09-01 20:59:52.000	417963	104
2016-09-01 00:00:00.000	2016-09-01 21:00:07.000	418028	105
2016-09-01 00:00:00.000	2016-09-01 21:00:21.000	418084	106
2016-09-01 00:00:00.000	2016-09-01 21:00:37.000	418116	107
2016-09-01 00:00:00.000	2016-09-01 21:00:52.000	418116	108
2016-09-01 00:00:00.000	2016-09-01 21:01:14.000	418116	109
2016-09-02 00:00:00.000	2016-09-02 09:29:38.000	418116	1
2016-09-02 00:00:00.000	2016-09-02 09:29:38.000	418116	2
2016-09-02 00:00:00.000	2016-09-02 09:30:09.000	418126	3
2016-09-02 00:00:00.000	2016-09-02 09:30:09.000	418126	4
2016-09-02 00:00:00.000	2016-09-02 09:30:36.000	418155	5
2016-09-02 00:00:00.000	2016-09-02 09:30:49.000	418195	6
2016-09-02 00:00:00.000	2016-09-02 09:31:01.000	418233	7
2016-09-02 00:00:00.000	2016-09-02 09:31:14.000	418275	8
2016-09-02 00:00:00.000	2016-09-02 09:31:29.000	418328	9





我尝试了什么:



我尝试过CTE,但我无法获得欲望值。



What I have tried:

I have tried CTE but i can not get the desire value.

推荐答案

一般来说,你可能会使用像DATEDIFF这样的东西 DATEDIFF( Transact-SQL) [ ^ ] - 但正如我在评论中指出的那样,你需要提供更多信息 - 你想要的是秒,天,月的差异吗? ,???例如



a一般形式的SQL可以是



in general, you'd likely use something like DATEDIFF DATEDIFF (Transact-SQL)[^] - but as Ive indicated in the comments, you need to provide more information - do you want the difference in seconds, days, months, ??? for example

a general form of SQL could be

select DATEDIFF(day, column1, column2) 
from tablex
where column1 >= startdaterange AND
           column2 <= enddaterange;




试试这段代码。 ..

Hi,
Try this code . ..
DECLARE @MinDate DATE = '20140101',
        @MaxDate DATE = '20140106';

SELECT  TOP (DATEDIFF(DAY, @MinDate, @MaxDate) + 1)
        Date = DATEADD(DAY, ROW_NUMBER() OVER(ORDER BY a.object_id) - 1, @MinDate)
FROM    sys.all_objects a
        CROSS JOIN sys.all_objects b;







在这里学习更多细节 。 。 。

获取两者之间的所有日期SQL Server中的日期 - 堆栈溢出 [ ^ ]


这篇关于如何在给定日期范围之间获得每个日期的第一个和最后一个值的子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆