国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

另類(lèi)解讀SQL Server中的DateTime數(shù)據(jù)類(lèi)型

瀏覽:5日期:2023-11-05 19:57:57

看到這個(gè)標(biāo)題,你我可能都笑了。你會(huì)笑,因?yàn)槟阋詾檫@個(gè)東西太小兒科了,還用得著做一個(gè)標(biāo)題?!我會(huì)笑,是因?yàn)槲掖_信你看完后會(huì)改變你的想法。

首先我引入一個(gè)問(wèn)題:如何與一個(gè)DateTime類(lèi)型的字段值進(jìn)行相等比較?

其實(shí)這個(gè)問(wèn)題看起來(lái)容易,但有下面的問(wèn)題存在:

1、一般來(lái)說(shuō),用戶輸入的日期值就是yyyy/mm/dd,不帶時(shí)、分、秒;

2、數(shù)據(jù)庫(kù)中存儲(chǔ)的日期值是帶時(shí)、分、秒的。

所以我必須假定:我們所謂的兩個(gè)日期相等就是年、月、日相等。

兩種方法:

◆1、有了這樣的假定,你我都會(huì)有這樣的想法:把兩個(gè)日期的年、月、日取出來(lái)分別比較就行了,三者相等即可(也可按統(tǒng)一格式做成一個(gè)串再比較)。

◆2、上面的方法雖然可行。但你會(huì)發(fā)現(xiàn)幾乎把日期函數(shù)用了個(gè)遍!不妨按下面的思路想一下:如果只指定日期,則時(shí)間默認(rèn)為 12:00 AM(午夜)(取自:SQL Server聯(lián)機(jī)幫助)。假定我們要查的日期是2004/7/10,則其實(shí)我們想要的就是這一天的00:00:00至23:59:59之間的。提到之間,我們就會(huì)想到between...and??!只要 between 2004/7/10 and 2004/7/11 即可了。具體地說(shuō):between Cast('2004-7-10' as DateTime) and dateadd(day, 1, Cast('2004-7-10' as DateTime))。但這個(gè)方法有一個(gè)小小問(wèn)題,它會(huì)把7/11 0點(diǎn)的東西也找到,而這其實(shí)不應(yīng)算做7/10的。如果你還想精益求精的話,就只能用...>=... and ...<... 了。(一般情況下沒(méi)有必要)

等于討論完后,再想想大于(或小于)某個(gè)日期,我們自然可以還用 between ... and 的,再一次論證上面方法的通用性。

注意:有了上面的討論,你一定明白了,and 后的日期一定要加一天,否則結(jié)束日期就不會(huì)查到了。

主站蜘蛛池模板: 同江市| 榕江县| 七台河市| 乐昌市| 四会市| 衡东县| 朝阳县| 吉木乃县| 兴山县| 额济纳旗| 陇西县| 武邑县| 林西县| 长乐市| 汝州市| 二连浩特市| 海城市| 万山特区| 梁河县| 盱眙县| 奈曼旗| 西丰县| 汉中市| 昭通市| 聂荣县| 保德县| 庆云县| 石阡县| 屏东市| 海伦市| 龙陵县| 崇阳县| 平阴县| 定远县| 黑河市| 承德市| 灌云县| 平山县| 富顺县| 温州市| 靖安县|