sql server查詢時間技巧分享
更新時間:2012年11月30日 08:55:39 作者:
如何將時間轉(zhuǎn)換為字符串的形式,本文將介紹sql server查詢時間的一些實用技巧,需要的朋友可以參考下
1、將時間轉(zhuǎn)換為字符串的形式:
convert(varchar,字段名,120)--------yyyy-mm-ddhh:ss:mm0000
convert(char(10),字段名,120)------yyyy-mm-dd
2、如果使用的是sql編輯器(微軟自帶的工具),查詢?nèi)掌诓恍枰褂煤瘮?shù)轉(zhuǎn)換,例如
Sql代碼
select*frominfowheredatatime>'2012-11-1100:00:00'anddatetime<'2012-12-1200:00:00'
3、如果是使用hibernate來查詢數(shù)據(jù)(使用HQL)就不能使用上面這種方式了,因為查詢的是對象,那么參數(shù)傳遞的時候要保證傳遞的參數(shù)是Date類型,否則會提示“轉(zhuǎn)換錯誤”
Java代碼
frompersonaspwherep.date=:date
傳遞的參數(shù):date一定要是Date類型
4、我們在進(jìn)行日期查詢的時候,發(fā)現(xiàn)數(shù)據(jù)庫的內(nèi)容是yyyy-mm-dd00:00:00000后面會精確到毫秒,但是如果我們使用Calendar類來得到Date類型,也是沒有辦法精確到毫秒的,既我們最多只能得到y(tǒng)yyy-mm-dd00:00:00xxx毫秒數(shù)是當(dāng)時系統(tǒng)的毫秒,那么查詢就會有誤差
5、時間的區(qū)間段查詢
例如我想查詢2011-11-11到2012-12-12之間的信息,它默認(rèn)查詢的時間是
2011-11-1100:00:00到2012-12-1200:00:00,也就是說2012-12-1223:59:59秒的時間是查詢不到的
解決辦法:將查詢的起始時間提前1秒,將終止時間多一天(少1秒)
復(fù)制代碼 代碼如下:
convert(varchar,字段名,120)--------yyyy-mm-ddhh:ss:mm0000
convert(char(10),字段名,120)------yyyy-mm-dd
2、如果使用的是sql編輯器(微軟自帶的工具),查詢?nèi)掌诓恍枰褂煤瘮?shù)轉(zhuǎn)換,例如
Sql代碼
復(fù)制代碼 代碼如下:
select*frominfowheredatatime>'2012-11-1100:00:00'anddatetime<'2012-12-1200:00:00'
3、如果是使用hibernate來查詢數(shù)據(jù)(使用HQL)就不能使用上面這種方式了,因為查詢的是對象,那么參數(shù)傳遞的時候要保證傳遞的參數(shù)是Date類型,否則會提示“轉(zhuǎn)換錯誤”
Java代碼
復(fù)制代碼 代碼如下:
frompersonaspwherep.date=:date
傳遞的參數(shù):date一定要是Date類型
4、我們在進(jìn)行日期查詢的時候,發(fā)現(xiàn)數(shù)據(jù)庫的內(nèi)容是yyyy-mm-dd00:00:00000后面會精確到毫秒,但是如果我們使用Calendar類來得到Date類型,也是沒有辦法精確到毫秒的,既我們最多只能得到y(tǒng)yyy-mm-dd00:00:00xxx毫秒數(shù)是當(dāng)時系統(tǒng)的毫秒,那么查詢就會有誤差
5、時間的區(qū)間段查詢
例如我想查詢2011-11-11到2012-12-12之間的信息,它默認(rèn)查詢的時間是
2011-11-1100:00:00到2012-12-1200:00:00,也就是說2012-12-1223:59:59秒的時間是查詢不到的
解決辦法:將查詢的起始時間提前1秒,將終止時間多一天(少1秒)
相關(guān)文章
使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式
這篇文章主要介紹了使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式,需要的朋友可以參考下2016-12-12
SQL Server 2008中的代碼安全(八)透明加密(TDE)
SQL Server 2008引入透明數(shù)據(jù)加密(Transparent Data Encryption),即TDE,它允許你完全無需修改應(yīng)用程序代碼而對整個數(shù)據(jù)庫加密。2011-06-06
SQL Server 2008 R2 為用戶權(quán)限分配的操作步驟
這篇文章主要介紹了SQL Server 2008 R2 為用戶權(quán)限分配的操作步驟,有時候我們不得不設(shè)置一些權(quán)限,例如禁止刪除等,那么就可以參考下面的方法2017-10-10
SQLServer2008新實例遠(yuǎn)程數(shù)據(jù)庫鏈接問題(sp_addlinkedserver)
這篇文章主要介紹了SQLServer2008新實例遠(yuǎn)程數(shù)據(jù)庫鏈接問題(sp_addlinkedserver),需要的朋友可以參考下2017-05-05
SQL Server附加數(shù)據(jù)庫出錯,錯誤代碼5123
本文介紹了幾種附加數(shù)據(jù)庫出現(xiàn)錯誤代碼5123,幾種解決方法,同樣遇到這種問題的小伙伴可以參考下。2016-05-05
SQL Server 2008存儲結(jié)構(gòu)之GAM、SGAM介紹
談到GAM和SGAM,我們不得不從數(shù)據(jù)庫的頁和區(qū)說起。一個數(shù)據(jù)庫由用戶定義的空間構(gòu)成,這些空間用來永久存儲用戶對象,例如數(shù)據(jù)庫管理信息、表和索引。這些空間被分配在一個或多個操作系統(tǒng)文件中2012-08-08
Sql Server 2008R2升級Sql Server 2012圖文教程
這篇文章主要分享了了Sql Server 2008R2升級Sql Server 2012圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
win2008 r2安裝SQL SERVER 2008 R2 不能打開1433端口設(shè)置方法
這篇文章主要介紹了win2008 r2安裝SQL SERVER 2008 R2 不能打開1433端口設(shè)置方法,需要的朋友可以參考下2017-01-01

