1. 程式人生 > >SQL Server中獲取指定時間段內的所有日期

SQL Server中獲取指定時間段內的所有日期

    DECLARE @days INT,
			@date_start DATETIME = '2016-11-01',
			@date_end DATETIME = '2016-11-10' 
    SET @days = DATEDIFF(DAY, @DATE_START, @DATE_END);  
    SELECT  DAY(DATEADD(dd, number, @DATE_START)) AS 日期
    FROM    master.dbo.spt_values
    WHERE   type = 'p'
            AND number <= @days;

結果:

1
2
3
4
5
6
7
8
9
10


說明:

master..spt_values相當於一個數字輔助表,在sql中主要用到number這個欄位

select number from master..spt_values where type='p'
--這樣查詢一下就知道什麼意思了

該表是從sybase繼承過來的,是個內部字典表,供SQL Server內部使用。
我們可以在許多系統儲存過程和函式的原始碼中發現它的身影。其實可以將它理解成我們程式設計時常用的資料字典.

列名分別為名稱、值、型別、下限、上限、狀態;

型別列的取值含義:
D=Database Option P=Projection DBR=Database Role DC=Database Replication I=Index L=Locks V=Device Type
因為比較多,無法一一列舉。其中型別P較為特殊,它只是0-2047(與版本有關)之間的數字的簡單列表,作為對所有型別之間關係的預測。

參考: http://blog.csdn.net/whaxrl/article/details/50789894

http://bbs.csdn.net/topics/360035752   

相關推薦

SQL Server獲取指定時間段所有日期

DECLARE @days INT, @date_start DATETIME = '2016-11-01', @date_end DATETIME = '2016-11-10' SET @days = DATEDIFF(DAY, @DATE_

sql server 查詢一定時間段訪問資料庫情況

SELECT TOP 30000 total_worker_time/1000 AS [總消耗CPU 時間(ms)], execution_count [執行次數], qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU

SQL SERVER如何獲取指定資料庫所有儲存過程的引數

SELECT sp.object_Id as FunctionId, sp.name as FunctionName, isnull(param.name,'')as ParamName,isnull(usrt.name,'') AS [DataTy

sql server取某個時間段所有日期或者所有月份

varchar value 出現 serve nbsp div brush var master 取所有月份: declare @begin datetime,@end datetime set @begin=‘2015-2-6‘ set @end=‘2015-12-

MySQL如何獲取指定時間段所有日期

SELECT DISTINCT date_format( DATE_ADD( '2018-08-20', INTERVAL id DAY ), '%Y-%m-%d' ) AS

Java傳入一個時間段,取出該時間段所有日期的集合

package com.yhsb.assisData.controller; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u

SQL Server 獲取時間

最經需要分析資料庫表中的資料,資料量相當大,其中時間欄位精確到微妙,但是在實際分析的時候時間欄位只需要精確到小時,但是經過查閱資料並沒有找到直接提取時間屬性到小時的,因此想到通過分別獲取年月日時分秒屬性,重新生成日期欄位,最後將查詢結果輸出到Excel進行分析,其實也可以在E

JAVA 獲取某個時間段所有日期

輸入格式: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dBegin = sdf.parse("2017-03

oracle 根據一個時間段獲取這個時間段所有月份、天數、日期

獲取月份列表:SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10', 'yyyy-MM'), ROWNUM - 1), 'yyyyMM') as monthlist FROM DUAL CONNECT BY ROWNUM <= months_between(to_dat

SQL 獲取指定月份的所有日期SQL日期分頁

package awu.demo; import java.util.Date; import java.util.List; import awu.util.DateUtil; public class SQLDemo { /** * @param year 年份 *

根據時間區間獲取時間區間所有日期

/** * @param start 開始時間 格式yyyymmdd * @param end 結束時間 格式yyyymmdd * @return list<string>期間的所有日期 */ public static List<Stri

C# 如何獲取SQL Server 指定資料表的所有欄位名和欄位型別

如何獲取指定資料表的所有欄位名和欄位型別。SqlConnection.GetSchema方法有2個過載形式,獲取指定資料表的所有欄位名和欄位型別的祕密就在GetSchema (String, String[])的第二個引數中。 定義如下: public override DataTable GetS

oralce sql 創建指定時間段的日歷信息

date 時間 div arch temp mit code ble track -- Create table create table TEMP_CALENDAR ( MONTH VARCHAR2(6), W_7 VARCHAR2(2), W_

sql查詢時間段所有周六日

values datetime class dateadd weekday code div add end 查詢說時間段內所有周六日DECLARE @t TABLE(date0 DATETIME) DECLARE @st DATETIME,@et DATETIME

數據庫SQL語句查詢指定時間段的數據

between 數據 spa and -m 指定 timestamp mes font 【摘要】有的時候,我們需要查詢數據庫某段時間之間的數據,比如2016年5月1號到到5月3號之間用戶註冊數量(特殊節假日期間)等。那麽用SQL語句如何實現呢? 首先,數據表中的存時間的字段

將一個基於磁盤的表遷移到SQL Server的一個存優化的表

varchar 並發 ken 希望 重要 資源管理器 limited com arc 本文是微軟的譯文,對應的原文是:https://www.red-gate.com/simple-talk/sql/database-administration/migrating-dis

SQL Server 如何做到連續時間段的拆分?

bubuko 關於 date HERE ber 思路 mage with class 今天在工作中遇到了一個很實際的問題,客戶在OA接口的員工休假中間表中提供了連續時間段的休假記錄,例如: 張三,2018-12-1 ~2018-12-31 ,病假,31天。這樣帶來的問題是,

遍歷SQL SERVER所有存儲過程和觸發器

server text 查找 所有 and from obj where serve 如果需要查找某個存儲過程或觸發器中是否含有某段文本(比如:你想知道有哪些存儲過程操作了某個表) 可以這麽寫 select name from sysobjects o, syscomm

SQL SERVER查詢參數為空(null)時默認查詢所有的實現

字符型 pub 篩選條件 sql 註意 exec ltr lis 引號 方法1:當出版社篩選條件為null,該如何寫SQL呢? 1 DECLARE @publishers VARCHAR(50);2 SELECT * FROM dbo.Book WHERE Publishe

Sql Server 由數字轉換為指定長度的字符串

col str 函數 mss tmp 增長 數字 select 數據類型 一個列的數據類型是 int ,從 1 開始自動增長,另一個列是字符串,現在想把 int 列轉換成 九個字符,比如 1 轉換後就是 000000001 ,添到字符串列,怎麽實現呢? set @imaxU