久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么用Spt

199次閱讀
沒有評論

共計 1821 個字符,預計需要花費 5 分鐘才能閱讀完成。

本篇內容主要講解“怎么用 Spt_Values 解決 SQL 中的連續日期問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么用 Spt_Values 解決 SQL 中的連續日期問題”吧!

spt_values 是什么

spt_values 是 SQL Server 新增的一個系統表,表里面都是一些枚舉數據。我們可以通過如下查詢語句來查看里面的數據

select * from master..spt_values

(因為該表屬于系統數據庫 master 下面,所以通常在表名前面添加庫名 master)

結果為:

(記錄較多,只截取部分記錄)

spt_values 連續記錄

但是通常我們使用的是 Type= P 的數據記錄,這些記錄是一組從 0 開始,2047 為止的連續整數,具體如下:

select * from master..spt_values where type= P 

結果為:

(記錄較多,只截取部分記錄)

我們經常使用的就是 number 列,通過該列我們可以生成很多連續的記錄,包括連續的日期,例如每天的 24 小時,每個月的每天,每年的 12 個月等等。

生成每天的 24 小時我們只需要指定開始和結束時間,就可以生成該時間段的連續小時了,這里從 0 點到 23 點。

SELECT SUBSTRING(CONVERT(CHAR(32), DATEADD(HH,number,CONCAT( 2021-01-05 ,   ,  00:00)),120),1,16) AS GroupDay FROM master..spt_values WHERE TYPE =  P  AND DATEDIFF(HH,DATEADD(HH,number, CONCAT( 2021-01-05 ,   ,  00:00)), CONCAT(2021-01-05 ,   ,  23:00)) =0

(提示:可以左右滑動代碼) 結果為:

(完整的有 24 條記錄,這里只截取前幾條)

生成每月的每天我們只需要指定開始和結束日期,就可以生成該日期段的連續天了,這里從 1 月 1 日到 1 月 31 日。

SELECT CONVERT(NVARCHAR(10), DATEADD(DAY, number,  2021-01-01),120) AS GroupDay FROM master..spt_values WHERE TYPE =  P  AND number  = DATEDIFF(DAY,  2021-01-01 ,  2021-01-31)

結果為:

(完整的有 31 條記錄,這里只截取前幾條)

生成每年的每月我們只需要指定開始和結束月份,就可以生成該月份段的連續月了,這里從 1 月到 12 月。

SELECT SUBSTRING(CONVERT(NVARCHAR(10), DATEADD(MONTH, number,  2021-01-01),120),1,7) AS GroupMonth FROM master..spt_values WHERE TYPE =  P  AND number  = DATEDIFF(MONTH,  2021-01-01 ,  2021-12-01)

結果為:

spt_values 應用實例

有如下一張表 Test

要求:顯示 1 月份所有日期的 DataValue 值,如果沒有值的,就顯示為 0。

分析:我們數據庫中只存儲了 4 條數據,這時候我們可以利用 SQL 的表 spt_values 來實現。

解法:

SELECT DATEADD(DAY, number, CONVERT(DATETIME,  2021-01-01)) [DataTime], ISNULL(DataValue,0) DataValue FROM master..spt_values LEFT JOIN Test ON DATEADD(DAY, number, CONVERT(DATETIME,  2021-01-01)) = [DataTime] WHERE type =  P  AND number BETWEEN 0 AND DATEDIFF(DAY,  2021-01-01 , DATEADD(MONTH, 1,  2021-01-01))-1;

結果為:

(完整的有 31 條記錄,這里只截取前幾條)

到此,相信大家對“怎么用 Spt_Values 解決 SQL 中的連續日期問題”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計1821字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 堆龙德庆县| 灵宝市| 叙永县| 通化县| 香格里拉县| 灵璧县| 昌都县| 石景山区| 两当县| 三台县| 五华县| 温州市| 西贡区| 堆龙德庆县| 龙井市| 梨树县| 北碚区| 苗栗市| 道真| 枞阳县| 鄂托克旗| 门头沟区| 怀安县| 浠水县| 彰武县| 大方县| 汉川市| 格尔木市| 班玛县| 武川县| 正定县| 海兴县| 卢龙县| 敦化市| 武平县| 白朗县| 临武县| 江源县| 区。| 辽阳市| 朝阳区|