sqlserver資料庫如何每時/每天/每月/每年任取一條資料
最近用sqlserver+.NET做一個專案,需求是要用圖表來顯示資料,而且是每時/每天/每月/每年任取一條資料,即如果使用者選擇時間的區域是同一天,那麼按區域的每小時取一條記錄,如果區間是一個月,那麼每天任取一條資料,如果區間是一年,每個月任取一條資料。。。。。
開始根本毫無頭緒,甚至是想用很暴力的方式解決(多寫幾條sql語句),最後在別人提供的小demo裡面發現瞭解決方法。
閒話不說,看sql語句:
select *
from tempview a
where not exists(
select 1
from tempview
where convert(varchar(13),receiveTime,120)=convert(varchar(13),a.receiveTime,120) and receiveTime>a.receiveTime
);
先解釋下convert函式:convert函式是用來格式化日期的方法(還有其他用處,自查)。第一個引數很明顯是最後返回的資料型別及型別長度(重要),第二個就是要格式化的物件,第三個就是要化成的格式值,如:這裡的120 代表的是:yyyy-mm-dd hh:mi:ss(24h)。
具體的每個引數代表什麼含義,可以訪問w3c: http://www.w3school.com.cn/sql/func_convert.asp
為什麼第一個引數加了個重要呢,因為型別長度的變化,將是解決問題的核心。
每月: 看一下要化成的格式:yyyy-mm-dd hh:mi:ss 當receiveTime只有年份相同時,我們就能夠通過比較月份是否相同來選取月份。這時將長度限制到yyyy(4)就能達到效果:所以SQL語句將變為這樣:
select *
from tempview a
where not exists(
select 1
from tempview
where convert(varchar(4),receiveTime,120)=convert(varchar(4),a.receiveTime,120) and receiveTime>a.receiveTime
);
那麼同理可得:每月:yyyy-mm varchar(7);
每日:yyyy-mm-dd varchar(10);
每日:yyyy-mm-dd hh varchar(13);
PS:注意應該要先把使用者選擇範圍內的資料先篩選出來,然後再基於這些資料選擇,所以上面的SQL語句用的是檢視。
注意:上面的SQL語句不算隨機取,因為他始終取滿足條件的最後一條資料。
相關文章
- SQL語句統計每天、每月、每年的 資料SQL
- sqlserver讀取oracle資料庫資料SQLServerOracle資料庫
- 每天,每週,每月,每年程式設計師該做的事情程式設計師
- 每天 每週 每月 每年程式設計師該做的事情程式設計師
- 程式設計師每天每週每月每年應該做的事程式設計師
- Mysql按時間分組查詢(每天|每月|每年)MySql
- sql 按著時間分組,每組取 20 條資料SQL
- 分享[ASP.NET] SQL語句統計每天、每月、每年的資料 編輯:吳立星ASP.NETSQL
- 新增時--sqlserver資料庫跟蹤SQLServer資料庫
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- sql 多組條資料取最新的一條資料SQL
- 【SQLServer】如何檢視某個資料庫中,每個table的資料量大小SQLServer資料庫
- 做資料庫分離讀寫時,sqlServer資料庫資料同步的問題:資料庫SQLServer
- SQLServer資料庫中建立臨時表SQLServer資料庫
- 如何透過一條資料庫語句做資料分析資料庫
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- SqlServer資料庫資料恢復報告SQLServer資料庫資料恢復
- SQLServer批量新增資料庫SQLServer資料庫
- Sql group by 分組取時間最新的一條資料SQL
- sql取每組最新資料SQL
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 定時做資料庫恢復測試sqlserver資料庫SQLServer
- SqlServer將資料庫中的表複製到另一個資料庫SQLServer資料庫
- Jtti:sqlserver怎麼清空資料庫資料JttiSQLServer資料庫
- 在不同的資料庫中解析SQLServer資料資料庫SQLServer
- 資料表每天五千四百萬資料,,如何彙總
- 統計資料庫每天的資料增長量資料庫
- SQLSERVER 資料庫效能的基本SQLServer資料庫
- SQLserver本地資料庫開發SQLServer資料庫
- ThinkPHP連線sqlserver資料庫PHPSQLServer資料庫
- SQLserver備份資料庫示例SQLServer資料庫
- jmeter 連線 sqlserver 資料庫JMeterSQLServer資料庫
- 簡單Sql語句統計每年每個月的資料,每個月為資料的每列,簡單SQL練習SQL
- 【轉】sqlserver2005資料庫映象時遇到 “資料庫在其中一個夥伴上是自動關閉的資料庫”SQLServer資料庫
- 實時資料庫與時序資料庫資料庫
- jive安裝時資料庫如何設定,我用的是MS SQLServer?資料庫SQLServer
- 【SqlServer】 理解資料庫中的資料頁結構SQLServer資料庫
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密