濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > SQL Server中查詢結(jié)果超出了查詢時(shí)間范圍解決方法

SQL Server中查詢結(jié)果超出了查詢時(shí)間范圍解決方法

熱門(mén)標(biāo)簽:股票配資電銷機(jī)器人 地圖標(biāo)注如何弄全套標(biāo) 電銷機(jī)器人 深圳 萬(wàn)利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 外呼系統(tǒng)會(huì)封嗎 武漢AI電銷機(jī)器人 實(shí)體店地圖標(biāo)注怎么標(biāo) 在電子版地圖標(biāo)注要收費(fèi)嗎 南京電銷外呼系統(tǒng)哪家好

廢話少說(shuō),直接上SQL代碼(有興趣的測(cè)試驗(yàn)證一下),下面這個(gè)查詢語(yǔ)句為什么將2008-11-27的記錄查詢出來(lái)了呢?這個(gè)是同事遇到的一個(gè)問(wèn)題,個(gè)人設(shè)計(jì)了一個(gè)例子。

USE AdventureWorks2014;
GO
SELECT * FROM [Person].[Person]
WHERE ModifiedDate >= '2008-11-26 00:00:00:000'
 AND ModifiedDate = '2008-11-26 23:59:59.999'

 

其實(shí)如果細(xì)看過(guò)文檔的話,應(yīng)該知道是什么原因,因?yàn)閿?shù)據(jù)類型Datetiem的時(shí)間范圍:00:00:00 到 23:59:59.997 , 最后部分的范圍為0 ~997,官方文檔提示,datetime的秒的小數(shù)部分精度的有舍入,具體請(qǐng)見(jiàn)下面

datetime 秒的小數(shù)部分精度的舍入

如下表所示,將 datetime 值舍入到 .000、.003、或 .007 秒的增量 。

用戶指定的值

系統(tǒng)存儲(chǔ)的值

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995

01/01/98 23:59:59.996

01/01/98 23:59:59.997

01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992

01/01/98 23:59:59.993

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990

01/01/98 23:59:59.991

1998-01-01 23:59:59.990

實(shí)驗(yàn)測(cè)試驗(yàn)證,998會(huì)轉(zhuǎn)換為997,而'2008-11-26 23:59:59.999'的話,就會(huì)轉(zhuǎn)換為'2008-11-27 00:00:00.000',如下截圖所示,所以尤其對(duì)數(shù)據(jù)精確性有要求的地方,要注意這些地方,否則SQL語(yǔ)句得出的結(jié)果在邏輯上就有誤。

官方文檔https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-ver15 中也有描述不準(zhǔn)確的地方,如下截圖所示: 

其實(shí)這個(gè)是精度問(wèn)題,如果選擇datetime2數(shù)據(jù)類型,它默認(rèn)的小數(shù)精度更高,不會(huì)遇到這個(gè)問(wèn)題,更多細(xì)節(jié)建議參考官方文檔(下面參考資料)

參考資料:

https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/datetime2-transact-sql?view=sql-server-ver15

https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-ver15

以上就是本次介紹的關(guān)于SQL Server查詢超時(shí)的知識(shí)點(diǎn)內(nèi)容,感謝大家的而學(xué)習(xí)和對(duì)腳本之家的支持。

您可能感興趣的文章:
  • SQL Server 磁盤(pán)請(qǐng)求超時(shí)的833錯(cuò)誤原因及解決方法
  • C#訪問(wèn)SqlServer設(shè)置鏈接超時(shí)的方法
  • sqlserver 2005連接超時(shí)采用bat命令解決

標(biāo)簽:泰安 濟(jì)源 武威 安徽 廣東 汕頭 臺(tái)州 濟(jì)寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server中查詢結(jié)果超出了查詢時(shí)間范圍解決方法》,本文關(guān)鍵詞  SQL,Server,中,查詢,結(jié)果,超,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server中查詢結(jié)果超出了查詢時(shí)間范圍解決方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL Server中查詢結(jié)果超出了查詢時(shí)間范圍解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    七台河市| 邯郸市| 黄骅市| 南通市| 拜泉县| 额敏县| 永泰县| 旅游| 长寿区| 阿拉善右旗| 阿克苏市| 三亚市| 焉耆| 水城县| 永济市| 金阳县| 宁河县| 淅川县| 梁平县| 正宁县| 织金县| 金阳县| 韶关市| 项城市| 桐城市| 新巴尔虎左旗| 吉首市| 凭祥市| 柘城县| 冀州市| 田东县| 闽侯县| 无极县| 紫金县| 鞍山市| 子洲县| 如东县| 鹤峰县| 枝江市| 清新县| 永登县|