sqlserver查询当月的每一天_SQL生成一年每一天的时间列表的几种方法
工作好幾年了,一直沒有寫博客,準備撿起來。。。
以下腳本適用環境:SQL SERVER (starting with 2012)
1、構建序列:
/*1-1:利用交叉連接,推薦下列這種寫法*/
SELECT
/*2012 開始已支持OFFSET 語法,不再推薦使用TOP N */
s1.i + s2.i + s3.i + s4.i + s5.i + s6.i + s7.i + s8.i + s9.i AS seq
FROM ( SELECT i = 0 UNION ALL SELECT i = 1 ) s1
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 2 as i) s2
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 4 as i) s3
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 8 as i) s4
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 16 as i) s5
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 32 as i) s6
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 64 as i ) s7
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 128 as i ) s8
CROSS JOIN ( SELECT 0 as i UNION ALL SELECT 256 as i ) s9
ORDER BY seq
OFFSET 0 ROWS FETCH NEXT 366 ROWS ONLY
/* 1-2:如果系統表列數不夠或者過多,會對結果或性能有影響 */
SELECT ROW_NUMBER() OVER (ORDER BY a1.object_id) - 1 AS seq
FROM sys.all_columns a1 WITH ( NOLOCK ) ,
sys.all_columns a2 WITH ( NOLOCK )
ORDER BY seq
OFFSET 0 ROWS FETCH NEXT 366 ROWS ONLY
/* 1-3:循環,不推薦的寫法 */
DECLARE @I INT
DECLARE @seq TABLE
(
seq INT NOT NULL
)
SET @I=0
WHILE @I < 366
BEGIN
INSERT INTO @seq(seq)
VALUES(@I)
SET @I+=1
END
SELECT * FROM @seq
2、基于以上的任意一種序列,使用DATEADD(DAY,seq,@DstDate) 即可生成一年中的每一天的時間列表。
3、拓展:MySQL中如何利用以上的思路,在不編寫存儲過程或函數的前提下,利用SQL 語句拆分一個字符串到數組?
Sql將一列數據拆分為多行顯示的兩種方法
原始數據與期望結果有表tb,?如下:id??????????value-----------?-----------1???????????aa,bb2???????????aaa,bbb,ccc欲按 ...
c#保存datagridview中的數據時報錯 “動態SQL生成失敗。找不到關鍵信息”
ilovejinglei 原文 C#中保存datagridview中的數據時報錯"動態SQL生成失敗.找不到關鍵信息" 問題描述 ??? 相關代碼 using System; us ...
重構 ORM 中的 Sql 生成
Rafy 領域實體框架設計 - 重構 ORM 中的 Sql 生成 ? 前言 Rafy 領域實體框架作為一個使用領域驅動設計作為指導思想的開發框架,必然要處理領域實體到數據庫表之間的映射,即包含了 OR ...
一條SQL生成數據字典
有個字典表并定期維護,對DBA和開發很重要,終于把他們整合在一起了,看有沒問題? 一條SQL生成數據字典,包含所有OPEN用戶.表名.字段名.字段序號.字段屬性.默認值.是否非空.字段意思.主鍵標識. ...
對于不返回任何鍵列信息的 selectcommand 不支持 updatecommand 的動態 sql 生成
大家知道,DataSet保存的數據是位于服務器內存里面的原數據庫的“副本”.所以用DataSet更新數據的過程就是先對“副本”進行更新,然后 在將“原本”更新,按照我的理解就是把“原本”覆蓋掉.具體到 ...
查看Linq to Sql生成的sql語句(轉)
查看Linq to Sql生成的sql語句 ? 在控制臺項目中,比較簡單,直接db.Log = Console.Out;就OK了 但是在其他項目中,需要處理如下: StreamWriter sw = ...
PHP通過sql生成CSV文件并下載,PHP實現文件下載
/** * PHP通過sql生成CSV文件并下載 * @param string $sql 查詢sql,結果為二維數組 * @param array $title 數據,CSV文件標題 * @para ...
Sql Server本地高版本備份數據備份至遠程低版本數據庫方法
想要將Sqlserver高版本備份的數據還原到低版本SqlServer2008R2上去,但是這在SqlServer中是沒法直接還原數據庫的,通過以下方法可以順利還原. 通過高版本生成sql腳本在低版本 ...
MySQL中優化sql語句查詢常用的30種方法
1.對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引.?2.應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使 ...
隨機推薦
對于大量left join 的表查詢,可以在關鍵的 連接節點字段上創建索引。
對于大量left join 的表查詢,可以在關鍵的 連接節點字段上創建索引. 問題: 大量的left join 怎么優化 select a.id,a.num,b.num,b.pcs,c.num, c. ...
win7下無法安裝QTP-少了Microsoft Visual c++2005 sp1運行時組件
問題是:當我點擊QTP的setup.exe進行QTP安裝時,出現提示[少了Microsoft?Visual?c++2005?sp1運行時組件,安裝時會提示命令行選項語法錯誤,鍵入“命令/?”可獲取幫肋 ...
OpenJudge_cdqz 數據結構版塊小結
題目整理 Challenge 0 ?隨機線性存儲表-easy Challenge 1??鏈表數組-easy Challenge 2? 可持久化Treap的可持久化運用-hard Challenge 3 ...
POJ 2049 Finding Nemo
Finding Nemo Time Limit: 2000MS ? Memory Limit: 30000K Total Submissions: 8631 ? Accepted: 2019 Desc ...
JavaScript 函數作用域和閉包
函數作用域和閉包 ?詞法作用域 ? 它們在定義它們的作用域里運行,而不是在執行的作用域運行,但是只有在運行時,作用域鏈中的屬性才被 定義(調用對象),此時,可訪問任何當前的綁定. ? 調用對象 ? ? ...
【BZOJ1257】余數之和(數論分塊,暴力)
[BZOJ1257]余數之和(數論分塊,暴力) 題解 Description 給出正整數n和k,計算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的 ...
前端筆記之NodeJS(一)初識NodeJS&;內置模塊&;特點
一.NodeJS簡介 NodeJS是開發服務器后臺的東西,和PHP.JavaEE.python類似,和傳統的瀏覽器的關注DOM的JS完全不同,將JavaScript觸角伸到了服務器端.內核是Chrom ...
虛擬機設置固定ip可以使shell遠程連接到服務器
配置vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR = 你的本機ip 192.168.1. 的范圍內 NETMASK = 255.255.2 ...
SpringMVC學習(三)———— springmvc的數據校驗的實現
一.什么是數據校驗? 這個比較好理解,就是用來驗證客戶輸入的數據是否合法,比如客戶登錄時,用戶名不能為空,或者不能超出指定長度等要求,這就叫做數據校驗. 數據校驗分為客戶端校驗和服務端校驗 客戶端校驗 ...
POJ1509 Glass Beads(最小表示法 后綴自動機)
Time Limit:?3000MS ? Memory Limit:?10000K Total Submissions:?4901 ? Accepted:?2765 Description Once ...
總結
以上是生活随笔為你收集整理的sqlserver查询当月的每一天_SQL生成一年每一天的时间列表的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机微距摄影,春天拍摄花朵的细节之美
- 下一篇: 蓝天使一代二代区别