成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

創(chuàng)新互聯(lián)建站專注于阜城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。阜城網(wǎng)站建設(shè)公司,為阜城等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

spt_values是什么

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

select * from master..spt_values

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

結(jié)果為:

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

spt_values連續(xù)記錄

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

select * from master..spt_values where type='P'

結(jié)果為:

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

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

生成每天的24小時我們只需要指定開始和結(jié)束時間,就可以生成該時間段的連續(xù)小時了,這里從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

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

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

生成每月的每天我們只需要指定開始和結(jié)束日期,就可以生成該日期段的連續(xù)天了,這里從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')

結(jié)果為:

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

生成每年的每月我們只需要指定開始和結(jié)束月份,就可以生成該月份段的連續(xù)月了,這里從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')

結(jié)果為:

怎么用Spt_Values解決SQL中的連續(xù)日期問題

spt_values應(yīng)用實例

有如下一張表Test

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

分析:我們數(shù)據(jù)庫中只存儲了4條數(shù)據(jù),這時候我們可以利用SQL的表spt_values來實現(xiàn)。

解法:

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;

結(jié)果為:

怎么用Spt_Values解決SQL中的連續(xù)日期問題

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

到此,相信大家對“怎么用Spt_Values解決SQL中的連續(xù)日期問題”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

當前名稱:怎么用Spt_Values解決SQL中的連續(xù)日期問題
網(wǎng)頁地址:http://jinyejixie.com/article0/gpeoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、網(wǎng)站營銷、外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站面包屑導航、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
凤庆县| 泰兴市| 福建省| 沿河| 永平县| 蒲城县| 隆安县| 唐山市| 汪清县| 青海省| 兴隆县| 大城县| 黄大仙区| 灌南县| 屯留县| 镇赉县| 澄城县| 玉溪市| 揭西县| 永新县| 阜城县| 内江市| 富阳市| 延边| 盐城市| 观塘区| 阳谷县| 廊坊市| 肥城市| 运城市| 资溪县| 应城市| 久治县| 肥乡县| 鄂托克前旗| 杨浦区| 黔西县| 清水县| 新乐市| 阿合奇县| 石景山区|