SqlServer 按時間段查詢問題
百度的資料,保存下來:
在寫按時間段查詢的sql語句的時候 一般我們會這么寫查詢條件:
where date>='2010-01-01' and date<='2010-10-1'
但是在實執(zhí)行Sql時些語句會轉(zhuǎn)換成這樣:
where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00'
,再看這個條件的話,也許就會有些明白,
那就是'2010-10-1 0:00:00' 之后的數(shù)據(jù)例如('2010-10-1:08:25:00')查不到,也就是說2010-10-1的數(shù)據(jù)查不到。
知道原因了可以修改查詢條件為:
where date>='2010-01-01' and date<='2010-10-1 23:59:59' 或 where date>='2010-01-01' and date<='2010-10-2'
某個表某個字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放
(1)、例如數(shù)據(jù)
2009-01-22 21:22:22
2009-01-22 19:21:11
2009-01-22 23:10:22
(2)、用 select * from TABLE where date between '2009-1-22' And '2009-1-22'
,想查日期為2009-1-22的記錄,結(jié)果查不到
(3)、問題原因
短日期類型默認(rèn)Time為00:00:00,所以當(dāng)使用between作限制條件時,就相當(dāng)于between '2009-1-22 00:00:00' and '2009-1-22 00:00:00',因此就查不出數(shù)據(jù)。
(4)、解決方法
--方案一:對數(shù)據(jù)庫里面的字段進行日期格式轉(zhuǎn)換 select * from tb where convert(varchar(10),riqi,120) = '2009-01-22' --方案二:給日期補全時分秒 select * from tb where riqi between '2009-01-22 00:00:00' and '2009-01-22 23:59:59' --結(jié)果 /**//* id riqi ---- ------------------------------------------------------ A 2009-01-22 21:22:22.000 B 2009-01-22 19:21:11.000 C 2009-01-22 23:10:22.000 (所影響的行數(shù)為 3 行) */
總結(jié)
以上所述是小編給大家介紹的SqlServer 按時間段查詢問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Sql server中內(nèi)部函數(shù)fn_PhysLocFormatter存在解析錯誤詳解
這篇文章主要給大家介紹了關(guān)于Sql server中內(nèi)部函數(shù)fn_PhysLocFormatter存在解析錯誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-09-09mssql server 存儲過程里,bulk insert table from ''路徑+文件'',路徑固定,文件名
mssql server 存儲過程里,bulk insert table from ''路徑+文件'',路徑固定,文件名不固定的實現(xiàn)方法...2007-07-07Sql Server:多行合并成一行,并做分組統(tǒng)計的兩個方法
Sql Server:多行合并成一行,并做分組統(tǒng)計的兩個方法,需要的朋友可以參考一下2013-02-02深入淺出解析mssql在高頻,高并發(fā)訪問時鍵查找死鎖問題
SQL Server死鎖使我們經(jīng)常遇到的問題,數(shù)據(jù)庫操作的死鎖是不可避免的,本文并不打算討論死鎖如何產(chǎn)生,重點在于解決死鎖。希望對您學(xué)習(xí)SQL Server死鎖方面能有所幫助。2014-08-08SQL Server誤區(qū)30日談 第3天 即時文件初始化特性可以在SQL Server中開啟和關(guān)閉
即時文件初始化是一個在SQL Server 2005以及之上的版本鮮為人知的特性。這個特性允許數(shù)據(jù)文件(僅僅是數(shù)據(jù)文件,不包括日志文件)初始化的過程跳過填0初始化過程。這種方式是在發(fā)生災(zāi)難時大大減少Downtime的好辦法---在恢復(fù)數(shù)據(jù)庫時由于免去了填0初始化的過程而直接開始恢復(fù)過程2013-01-01sql語句查詢重復(fù)的數(shù)據(jù)(最新推薦)
這篇文章主要介紹了sql語句查詢重復(fù)的數(shù)據(jù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05