1. 程式人生 > >【原創】SqlServer、利用遞迴查詢、將日期範圍轉換為日期表

【原創】SqlServer、利用遞迴查詢、將日期範圍轉換為日期表

在做專案任務時,需要將一個日期範圍轉換為日期表。
例如:日期範圍(2017年01月21日~2017年02月20日)、轉換成一日為單位的日期表,如下。
2017-01-21
2017-01-22
2017-01-23
……
2017-02-19
2017-02-20

直接上SQL,查詢結果如上:

SET LANGUAGE N'Simplified Chinese'
DECLARE @StartDate      NVARCHAR(MAX) = '2017-01-21'
       ,@EndDate        NVARCHAR(MAX) = '2017-02-21'
;
WITH TEMP
AS
(SELECT
CAST(@StartDate AS DATE) AS DT UNION ALL SELECT CAST(DATEADD(DAY,1,DT) AS DATE) FROM TEMP WHERE DATEADD(DAY,1,DT)<[email protected] ) SELECT * FROM TEMP ;

另外,生成數字序列1到100的方法,如下:

with t
as
(select 1 as dt
 union all
 select dt+1 from t
 where dt+1<=100
)
select dt from t option(maxrecursion 0
) ;

更簡單的方法,如下:

select number from master..spt_values where type='p' and number between 1 and 100

相關推薦

原創SqlServer利用查詢日期範圍轉換日期

在做專案任務時,需要將一個日期範圍轉換為日期表。 例如:日期範圍(2017年01月21日~2017年02月20日)、轉換成一日為單位的日期表,如下。 2017-01-21 2017-01-22

程式22 題目:利用方法求5!。

/* 2017年3月7日16:47:13 java基礎50道經典練習題 例22 Athor: ZJY Purpose: 【程式22】 題目:利用遞迴方法求5!。 程式分析:遞迴公式:

鄰接矩陣非輸出所有簡單路徑

原文連結:深搜(非遞迴)實現獲取兩點之間的路徑 #include <stdio.h> #include <tchar.h> #include <stdlib.h> #include <iostream> #include <stack>

如何確定Kafka的分割槽數key和consumer執行緒數 原創如何確定Kafka的分割槽數key和consumer執行緒數

【原創】如何確定Kafka的分割槽數、key和consumer執行緒數   在Kafak中國社群的qq群中,這個問題被提及的比例是相當高的,這也是Kafka使用者最常碰到的問題之一。本文結合Kafka原始碼試圖對該問題相關的因素進行探討。希望對大家有所幫助。

28利用計算自然數 n 的階乘

// 利用遞迴計算自然數 n 的階乘 #include<stdio.h> long f( int n) { long result; if(n>1) {

演算法迭代和

在日常程式的編寫中,複雜的專案日益增多,在後期的程式碼優化上需要花更多的時間和精力。在前期的規劃上也越來越重要,前期良好的規劃可以避免後期遇到些奇怪的問題。 這次部落格我希望通過講解下迭代和遞迴的具體應用場景,來表達寫程式是前期規劃的作用和解決具體問題所需要的方法。

DFS深度優先搜尋方式講解

前言 記得第一次接觸到DFS還是在去年大概三四月份,當時也是在準備比賽的時候聽說DFS很重要(原諒我是個小白),然後就去Google了一波什麼叫做DFS,當時的我剛開始學習C++,還沒有學習資料結構,講道理當時我看懂了演算法原理,但是對於什麼圖呀,樹呀的還真是

排序歸併排序(和非版本)

#include<iostream> using namespace std; void merge(int* a, int* temp, int begin, int middle, int end){ int i = begin; int j = mi

原創隨機產生漢字姓名(234字)

分享圖片 漢字 while info 圖片 技術 don create ray 如圖所示,想要產生隨機漢字姓名,該怎麽辦? 小二的源碼分享(轉載請註明出處): #!/bin/sh ########################################

原創Redis高階功能之 慢查詢

一、何為慢查詢? 慢查詢功能可以有效地幫助我們找到 Redis 可能存在的瓶頸 要想理解慢查詢的定義是什麼,我們可以參見下圖。當我們在客戶端傳送命令給 Redis之後,Redis 需要對這些查詢進行排隊處理。如果這條查詢命令在內部執行的時間超過了已經配置好的時限,那麼這條命令(查詢)

ORACLE單行轉多行ORACLE查詢

ORACLE單行轉多行 WITH TESTTABLE AS ( SELECT 'TEST1' GROUPNAME , 'A,B,C,D,E' VALUENAME FROM DUAL UNION ALL SELECT 'TEST2' GROUPNAME ,

二叉樹深度優先遍歷(廣度優先遍歷構建二叉樹

public class BinaryTree { static class TreeNode{ int value; TreeNode left; TreeNode right; public Tree

原創SQL 返回時間所在月份周次,該周起始結束日期

IF EXISTS ( SELECT 1 FROM sysobjects WHERE name = 'fn_Week) DROP FUNCTION fn_Week GO set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO /*

三種快速排序演算法的實現(演算法演算法三路劃分快速排序)

快速排序的三個步驟: 1、分解:將陣列A[l...r]劃分成兩個(可能空)子陣列A[l...p-1]和A[p+1...r],使得A[l...p-1]中的每個元素都小於等於A(p),而且,小於等於A[p

二叉樹的四種遍歷方式:+棧Morris(後序非還有一種單棧和雙棧的不同版本)

本文參考: 參考文章1 參考文章2 程式碼中加入了一些自己的理解 /* 二叉樹的四種遍歷方式 */ #include <iostream> #include <stack> using namespace std; // 二叉樹

TensorflowWindows安裝tensorflow錯誤原因查詢解除安裝tensorflow與重新安裝

Windows安裝tensorflow錯誤原因查詢、解除安裝tensorflow與重新安裝 深度學習這個大坑的苦與甜,誰踩誰知道。上文介紹了windows如何安裝tensorflow點我:Windows(64)位安裝tensorflow,但因為一般電腦上會有好

原創python倒排索引之查詢包含某主題或單詞的檔案

什麼是倒排索引? 倒排索引(英語:Inverted index),也常被稱為反向索引、置入檔案或反向檔案,是一種索引方法,被用來儲存在全文搜尋下某個單詞在一個文件或者一組文件中的儲存位置的對映。它是文件檢索系統中最常用的資料結構。通過倒排索引,可以根據單詞快速獲取包含這個單詞的文件列表。倒排索引主要由兩個部分

CV如何使用Tensorflow提供的Object Detection API --2--資料轉換TFRecord格式

本篇主要講的是如何將現存的資料變成Tensorflow記錄格式,然後我們就可以用這些資料來進行微調模型,以解決我們關心的問題了。 什麼是TFRecord格式 一般使用TF讀取資料有四種方式: 預先把所有資料載入進記憶體 在每輪訓練中使用原生Python程式碼讀取

postgresql查詢結果拼接

pg由於對大小寫不敏感,如果欄位中有大寫,需要將該欄位加雙引號,否則自動轉為小寫查詢with RECURSIVE cte as  (  select a.id,a.name,a."parentId" from system_area a where id=130000  un

ORACLE查詢(適用於ID,PARENTID結構資料

oracle樹查詢的最重要的就是select…start with…connect by…prior語法了。依託於該語法,我們可以將一個表形結構的以樹的順序列出來。在下面列述了oracle中樹型查詢的常用查詢方式以及經常使用的與樹查詢相關的oracle特性函式等,在這裡只涉及到一張表中的樹查詢方式而不涉及多表