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