我想獲取最近 7 個日期(沒有時間)的查詢結果(例如填充表)。我知道我們可以在沒有 FROM 陳述句的情況下選擇一些標量。所以我最終得到了以下解決方案:
select DATEADD (DAY, 0, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-1, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-2, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-3, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-4, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-5, CONVERT(date, GetDate()))
Union
select DATEADD (DAY,-6, CONVERT(date, GetDate()))
如果有,請指出更好(更優雅)的解決方案。
uj5u.com熱心網友回復:
的VALUES,表值構造,是一個小更簡潔。
select dateadd(day, x.num, convert(date, getdate()))
from (
values (0), (-1), (-2), (-3), (-4), (-5), (-6)
) x (num)
order by x.num;
回傳:
| 日期 |
|---|
| 2021-11-18 |
| 2021-11-19 |
| 2021-11-20 |
| 2021-11-21 |
| 2021-11-22 |
| 2021-11-23 |
| 2021-11-24 |
uj5u.com熱心網友回復:
您還可以values通過使用永久數字/計數表(總是很方便)或通過從任何合適的表格生成數字串列來擴展表格,然后您可以創建任何時期的日期串列
select dateadd(day, n.v, convert(date, getdate()))
from (
select top (30) v=-1 * Row_Number() over(order by (select 1))
from master.dbo.spt_values
)n
order by n.v;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/365400.html
標籤:sql sql-server 日期 查询语句
