我想要使用SQL查詢來滾動70周,65周和60周(單獨)數據。我知道如何在幾年和幾個月內做到這一點,但我如何獲得一個滾動的65週數據等?在SQL Server中獲取滾動週數據
0
A
回答
2
如果我理解正確,你要知道有多少周是一個日期跨度,從2016-01-說01至2017-01-14。
在您轉換日期爲int(從天1900-01-01)像這樣convert(int,DateColumn)
因此,你可以簡單地轉換日期爲int,減,然後通過7
例如劃分的SQL Server
2016年1月1日= 42368
2017年1月14日= 42747
(42747 - 42368)/ 7 = 54
一個SQL查詢會是這個樣子:
select (convert(int,GETDATE()) - convert(int,DateColumn))/7 as WeeksAgo from Table
用在一個WHERE語句來獲得最後65周:
select * from Table where ((convert(int,GETDATE()) - convert(int,DateColumn))/7) < 65
0
不多來自這個問題繼續下去,但你可以使用理貨表
DECLARE @StartDateTime DATE = GETDATE() --Pick a starting Point
--tally tables http://www.sqlservercentral.com/articles/T-SQL/62867/
--===== Conditionally drop
IF OBJECT_ID('dbo.Tally') IS NOT NULL
DROP TABLE dbo.Tally
--===== Create and populate the Tally table on the fly
SELECT TOP 11000 --equates to more than 30 years of dates
IDENTITY(INT,1,1) AS N
INTO dbo.Tally
FROM Master.dbo.SysColumns sc1,
Master.dbo.SysColumns sc2
--===== Add a Primary Key to maximize performance
ALTER TABLE dbo.Tally
ADD CONSTRAINT PK_Tally_N
PRIMARY KEY CLUSTERED (N) WITH FILLFACTOR = 100
SELECT
DATEADD(WEEK, T.N, @StartDateTime) 'Week70'
FROM dbo.Tally T
WHERE
T.N <= 70
SELECT
DATEADD(WEEK, T.N, @StartDateTime) 'Week65'
FROM dbo.Tally T
WHERE
T.N <= 65
SELECT
DATEADD(WEEK, T.N, @StartDateTime) 'Week60'
FROM dbo.Tally T
WHERE
T.N <= 60
+0
Hello Cool_Br33ze, 謝謝。但是,您如何加入Tally表以便能夠在您的where子句中使用它? – dLight
+0
@dLight我沒有加入Tally表,但是從中選擇N(棕色),並在'DATEADD'函數中使用它。理貨是避免使用CURSOR的好方法 –
相關問題
- 1. 如何獲取一週滾動數據集與sql
- 2. 從sql server中動態獲取數據
- 3. 從SQL Server數據庫獲取數據
- 4. 數據從SQL Server獲取在VBA
- 5. 通過sql和php獲取數據周
- 6. 從sql獲取每週數據
- 7. 增量週數在SQL Server
- 8. SQL Server在嵌套的JSON數據結構中獲取數據
- 9. SQL Server - 給定週數,在一週內獲取第一個日期?
- 10. SQL Server:如何從動態多個表中獲取數據?
- 11. 在SQL Server 2005中分割數週
- 12. 獲取在SQL Server 2005中
- 13. 獲取在SQL Server
- 14. 獲取在SQL Server
- 15. Excel沒有從SQL Server獲取數據
- 16. 獲取SQL Server查詢元數據
- 17. 從SQL Server數據庫獲取信息
- 18. VBA從SQL Server獲取數據
- 19. 從SQL Server獲取數據庫列表
- 20. 從SQL Server獲取新數據
- 21. 使用ADO.NET從SQL Server獲取數據
- 22. 從Sql Server 2008獲取數據與C#
- 23. 如何在滾動或滾動時獲取更多JSON數據?
- 24. 獲取週數
- 25. 如何使用SQL Server獲取每週的計數(項目)
- 26. 從上週獲取數據
- 27. 在SQL Server中在20:00和05:00之間獲取數據
- 28. 從SQL Server數據庫獲取數據到標籤中
- 29. SQL Server 2008中獲取一季度數據與數據透視
- 30. 從SQL Server數據庫中獲取數據集
向我們展示一些代碼,你的努力。你如何定義一個滾動周?從一週的某一天開始? – Tanner
滾動周應該是我的where子句中的數據範圍,但是每次查詢運行時,它都會返回65周範圍內的數據等 – dLight