新聞中心
日期比較可以說是數(shù)據(jù)庫實(shí)際開發(fā)中最常見的操作之一,但是MSSQL的日期比較卻困擾著很多開發(fā)者。

我們一直強(qiáng)調(diào)網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)絡(luò)公司不一定是大公司,成都創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。
MSSQL的日期格式比較麻煩,因?yàn)槠浔举|(zhì)是datetime類型,包含時間戳,這樣就會對結(jié)果的準(zhǔn)確度造成影響。不管日期之間的差異有多小,查詢結(jié)果都會是不相等的。如下面的例子,它們在看起來一模一樣,但實(shí)際比較卻為不等:
select GETDATE()
select GETDATE()
結(jié)果:
2020-03-26 15:23:59.627
2020-03-26 15:24:00.613
這會導(dǎo)致很多惱人的問題,如果在SQL語句中使用普通表達(dá)式比較兩個時間,實(shí)際上計(jì)算的結(jié)果是不準(zhǔn)確的。
此外,另一個常見的問題就是如何正確比較當(dāng)日日期。一種常用的做法就是將日期轉(zhuǎn)換成字符串類型,例如:
select convert (varchar, getdate(), 10)
上面的語句將查詢出的當(dāng)前日期轉(zhuǎn)換為字符串類型,非常實(shí)用。我們也可以自己編寫擴(kuò)展函數(shù),將datetime類型轉(zhuǎn)換為日期類型,例如:
CREATE FUNCTION dbo.GetDateOnly
(
@date datetime
)
RETURNS date
AS
BEGIN
RETURN CAST(@date AS date)
END
最后,我們還要學(xué)習(xí)如何比較兩個日期的月份、年份的技巧。這種技巧相對簡單,因?yàn)镸SSQL提供了一些內(nèi)置函數(shù)來支持此類比較,例如:
select DateDiff(month, '2019-01-01', '2019-02-01')
對于以上易出錯的日期比較,我們必須考慮準(zhǔn)確性和可讀性,這樣我們的程序才能正確比較兩個日期。
總之,MSSQL的日期比較非常困難,但運(yùn)用一些技巧,我們也可以得到準(zhǔn)確的結(jié)果。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁名稱:MSSQL日期比較之謎(mssql日期判斷)
新聞來源:http://m.5511xx.com/article/djisdgg.html


咨詢
建站咨詢
