国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

另類解讀SQL Server中的DateTime數據類型

2024-08-31 00:52:40
字體:
來源:轉載
供稿:網友

看到這個標題,你我可能都笑了。你會笑,因為你以為這個東西太小兒科了,還用得著做一個標題?!我會笑,是因為我確信你看完后會改變你的想法。

首先我引入一個問題:如何與一個DateTime類型的字段值進行相等比較?

其實這個問題看起來容易,但有下面的問題存在:

1、一般來說,用戶輸入的日期值就是yyyy/mm/dd,不帶時、分、秒;

2、數據庫中存儲的日期值是帶時、分、秒的。

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

兩種方法:

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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新野县| 榆社县| 乳山市| 凉城县| 郓城县| 华宁县| 鄯善县| 南涧| 辽源市| 随州市| 伊吾县| 隆尧县| 巴楚县| 汉源县| 平昌县| 旌德县| 东乌珠穆沁旗| 青岛市| 军事| 山丹县| 安丘市| 凤庆县| 鄂托克前旗| 股票| 额敏县| 伽师县| 郓城县| 于都县| 红河县| 东莞市| 乐至县| 金门县| 高碑店市| 额济纳旗| 通渭县| 大渡口区| 五大连池市| 奇台县| 大化| 历史| 宜宾市|