專(zhuān)利名稱(chēng):數(shù)據(jù)庫(kù)日期查詢(xún)方法及裝置、數(shù)據(jù)庫(kù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫(kù),具體涉及數(shù)據(jù)庫(kù)日期查詢(xún)方法及裝置、數(shù)據(jù)庫(kù)。
背景技術(shù):
由于數(shù)據(jù)庫(kù)的功能強(qiáng)大,并且也容易使用,得到了越來(lái)越多的應(yīng)用,常用的數(shù)據(jù) 庫(kù)有SqlServer、DB2、 Oracle等。-一般的數(shù)據(jù)庫(kù)中都有日期(MTE)、時(shí)間(T頂E)、時(shí)間戳 (TIMESTAMP)等與日期有關(guān)的類(lèi)型字段,在這些類(lèi)型字段中數(shù)據(jù)庫(kù)保存的日期格式都是到 了毫秒。 對(duì)于DATE類(lèi)型字段,數(shù)據(jù)庫(kù)保存的格式只保存到天yyyy-腦-dd,后面的小時(shí),分 鐘,秒,毫秒,都是用0代替,例如2008年8月8日,在數(shù)據(jù)庫(kù)保存格式類(lèi)似2008-08-08 00:00:00. 000 ;對(duì)于TIME類(lèi)型字段,數(shù)據(jù)庫(kù)保存的格式保存到小時(shí),分鐘,秒,毫秒;對(duì)于 TIMESTAMP類(lèi)型字段,數(shù)據(jù)庫(kù)既保存日期,又保存時(shí)間。例如2008年8月8日8時(shí)8分8 秒,在數(shù)據(jù)庫(kù)保存格式類(lèi)似2008-08-08 08:08:08. ()O(),如果還有毫秒,則也保存毫秒數(shù),毫 秒的取值范圍是0-999,如果沒(méi)有毫秒,就用000代替。 但是在實(shí)際業(yè)務(wù)的應(yīng)用中,在進(jìn)行日期查詢(xún)時(shí)精確查詢(xún)到毫秒,絕大部分是直接 査詢(xún)?nèi)掌诨驎r(shí)間戳;例如在查詢(xún)?nèi)掌跁r(shí),用戶(hù)輸入的是日期查詢(xún)條件,如2008-08-08等,在 查詢(xún)時(shí)間戳?xí)r,用戶(hù)輸入的是時(shí)間戳查詢(xún)條件,如2008-08-08 08:08:08等。此時(shí),為了能 夠從數(shù)據(jù)庫(kù)中査找到符合用戶(hù)輸入的査詢(xún)條件的數(shù)據(jù)庫(kù)記錄, -種常用的方法是這樣的
將數(shù)據(jù)庫(kù)記錄的日期(格式為2008-08-08 08:08:08. 000)轉(zhuǎn)換為字符串,然后再 從字符串中截取一部分與用戶(hù)輸入的查詢(xún)條件進(jìn)行匹配。 例如用戶(hù)需要查找等于2()()8-08-08的數(shù)據(jù)庫(kù)記錄,將數(shù)據(jù)庫(kù)記錄的日期轉(zhuǎn)換為 字符串后,截取字符串的前面10位,例如一條數(shù)據(jù)庫(kù)記錄為2008-08-0808:08:08. 000, 則轉(zhuǎn)換成字符串后截取的前面10位為2008-08-08,再將這10位與用戶(hù)輸入的查詢(xún)條件 2008-08-08進(jìn)行匹配;在用戶(hù)輸入的查詢(xún)條件為時(shí)間戳?xí)r,處理方式類(lèi)似,不再贅述。
在對(duì)現(xiàn)有技術(shù)的研究中,發(fā)明人發(fā)現(xiàn)使用現(xiàn)有的上述方法雖然能夠?qū)τ脩?hù)輸入的 查詢(xún)條件進(jìn)行查詢(xún),但是由于不能使用數(shù)據(jù)庫(kù)的索引,需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行全表掃描,并且對(duì) 每條記錄都進(jìn)行轉(zhuǎn)換和截取,導(dǎo)致查詢(xún)時(shí)間長(zhǎng),査詢(xún)效率低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了數(shù)據(jù)庫(kù)日期査詢(xún)方法及裝置、數(shù)據(jù)庫(kù),可以減少查詢(xún)時(shí)間,提 高查詢(xún)效率。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)日期査詢(xún)方法,包括 接收用戶(hù)的查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面; 接收用戶(hù)通過(guò)所述輸入界面輸入的查詢(xún)條件; 將所述查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間; 從數(shù)據(jù)庫(kù)中査找處于所述時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。
4
本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫(kù)日期查詢(xún)裝置,包括接收單元、展示單元、轉(zhuǎn)換 單元和查詢(xún)單元; 所述接收單元,用于接收用戶(hù)的查詢(xún)請(qǐng)求;接收用戶(hù)通過(guò)所述展示單元展示的輸 入界面輸入的查詢(xún)條件; 展示單元,用于在所述接收單元接收了查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面; 轉(zhuǎn)換單元,用于將所述接收單元接收的查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)
間區(qū)間; 查找單元,用于從數(shù)據(jù)庫(kù)中查找處于所述轉(zhuǎn)換單元得到的時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記 錄。 本發(fā)明實(shí)施例還提供了 一種數(shù)據(jù)庫(kù),包括本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)日期查詢(xún)裝 置。 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于 本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其 他的附圖。
圖1為本發(fā)明實(shí)施例中數(shù)據(jù)庫(kù)日期査詢(xún)方法實(shí)施例的流程圖;
圖2為本發(fā)明實(shí)施例中數(shù)據(jù)庫(kù)日期查詢(xún)裝置實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 先介紹本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)日期查詢(xún)方法,圖1描述了數(shù)據(jù)庫(kù)日期查詢(xún)方 法實(shí)施例的流程,該實(shí)施例描述的是數(shù)據(jù)庫(kù)日期查詢(xún)裝置的處理流程,包括
1()1、接收用戶(hù)的查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面; 用戶(hù)在瀏覽數(shù)據(jù)庫(kù)時(shí),由于數(shù)據(jù)庫(kù)的記錄可能很多,因此用戶(hù)可以從中查詢(xún)自己
想要的數(shù)據(jù)庫(kù)記錄;數(shù)據(jù)庫(kù)都會(huì)提供查詢(xún)?nèi)肟?,可能是按鈕,也可能是菜單命令等;用戶(hù)在
點(diǎn)擊了按鈕或菜單命令后會(huì)發(fā)送一個(gè)查詢(xún)請(qǐng)求,數(shù)據(jù)庫(kù)日期查詢(xún)裝置接收了該查詢(xún)請(qǐng)求
后,可以向用戶(hù)展示輸入界面,用戶(hù)可以通過(guò)該輸入界面輸入查詢(xún)條件。 102、接收用戶(hù)通過(guò)輸入界面輸入的査詢(xún)條件; 103、將査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間; 用戶(hù)輸入的査詢(xún)條件可能并不符合數(shù)據(jù)庫(kù)存儲(chǔ)格式,例如日期的數(shù)據(jù)庫(kù)存儲(chǔ)格式
5一般為"YYYY-麗-DD HH:腿SS. NNN",其中YYYY代表年,麗代表月,DD代表日,朋代表時(shí), 麗代表分,SS代表秒,NNN代表毫秒,即數(shù)據(jù)庫(kù)存儲(chǔ)格式精確到了毫秒;而用戶(hù)輸入的查詢(xún) 條件中的查詢(xún)參數(shù)可能精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,如果直接使用查詢(xún)參數(shù)進(jìn)行查詢(xún)則不能與數(shù)據(jù)庫(kù)存儲(chǔ)格式進(jìn)行匹配,因此可以將 查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間。
104、從數(shù)據(jù)庫(kù)中査詢(xún)處于時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。 由于時(shí)間區(qū)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式,因此從數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)庫(kù)記錄時(shí)可以直接 用數(shù)據(jù)庫(kù)的索引進(jìn)行查詢(xún)。 從上可知,本實(shí)施例可以將用戶(hù)輸入的查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí) 間區(qū)間,進(jìn)而可以數(shù)據(jù)庫(kù)中查詢(xún)處于時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄,由于時(shí)間區(qū)間符合數(shù)據(jù)庫(kù)存 儲(chǔ)格式,因此可以使用數(shù)據(jù)庫(kù)的索引進(jìn)行查詢(xún),從而提高查詢(xún)速度,可以減少査詢(xún)時(shí)間,提 高查詢(xún)效率。 如下以用戶(hù)輸入的不同的査詢(xún)條件對(duì)本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)日期查詢(xún)方法 進(jìn)行描述。
(1)接收的查詢(xún)條件為等于查詢(xún)參數(shù)。 查詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,例如,接收的查詢(xún)條件為"等于2008年"、或"等于2008年08月"、或"等于2008年 08月08日"、或"等于2008年08月08日08時(shí)"、或"等于2008年08月08日08時(shí)08分"、 或"等于2008年08月08日08時(shí)08分08秒"。 這種情況下將查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟可以包括
將査詢(xún)參數(shù)轉(zhuǎn)換成大于等于查詢(xún)參數(shù)的開(kāi)始時(shí)間且小于查詢(xún)參數(shù)的最小時(shí)間單位加1的 開(kāi)始時(shí)間的時(shí)間區(qū)間,其中查詢(xún)參數(shù)的開(kāi)始時(shí)間和査詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí) 間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。本發(fā)明實(shí)施例中最小時(shí)間單位是年、或月、或日、或時(shí)、或分、或秒 等,具體根據(jù)查詢(xún)參數(shù)確定。其中,查詢(xún)參數(shù)的開(kāi)始時(shí)間根據(jù)查詢(xún)參數(shù)的最小時(shí)間單位確 定,例如査詢(xún)參數(shù)的最小時(shí)間單位是年,則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該年的01月01日00時(shí) 00分00秒;例如查詢(xún)參數(shù)的最小時(shí)間單位是月,則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該月的01日00 時(shí)00分00秒;例如查詢(xún)參數(shù)的最小時(shí)間單位是日,則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該日的00時(shí) 00分00秒;例如查詢(xún)參數(shù)的最小時(shí)間單位是時(shí),則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該時(shí)的00分(X) 秒;例如查詢(xún)參數(shù)的最小時(shí)間單位是分,則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該分的00秒;例如査詢(xún) 參數(shù)的最小時(shí)間單位是秒,則查詢(xún)參數(shù)的開(kāi)始時(shí)間是該秒的000毫秒。查詢(xún)參數(shù)的最小時(shí) 間單位加1的開(kāi)始時(shí)間與查詢(xún)參數(shù)的開(kāi)始時(shí)間類(lèi)似,不再贅述。 假設(shè)用戶(hù)查找日期等于2008-08-08 08:08:08的數(shù)據(jù),則時(shí)間區(qū)間為"> ='2008-08-08 08:08:08, and <'2008-08-09 08:08:09,",最小時(shí)間單位是秒。其中,僅 將查詢(xún)條件轉(zhuǎn)換到秒是因?yàn)榫_到秒時(shí)已經(jīng)可以使用數(shù)據(jù)庫(kù)的索引進(jìn)行查詢(xún),能夠提高查 詢(xún)速度,可以減少査詢(xún)時(shí)間,提高查詢(xún)效率。 假設(shè)用戶(hù)查找日期等于2008-08-08的數(shù)據(jù),則時(shí)間區(qū)間為"> =,2008-08-0800:00:00, and < '2008-08-0900:00:00,",其中,最小時(shí)間單位是日。
假設(shè)FSendTime ='參數(shù)日期',則查找日期等于2008-08-08的數(shù)據(jù)時(shí),不同的 數(shù)據(jù)庫(kù)的轉(zhuǎn)換結(jié)果可以如下
SqlServer :FSendTime 〉='2008-08-08 00:00:00' And FSendTime
< '2008-08-0900:00:00'
Oracle : FSendTime >= TO—DATE (' 2008-08-08 00:00:00' ,' YYYY-MM-DD朋24: MI: SS')
AND FSendTime < TO—DATE (' 2008-08-09 00:00:00' , ' YYYY-MM-DD冊(cè)24: MI: SS')
D:B2 :FSendTime >='2008-08-08 00:00:00' And FSendTime
< '2008-08-0900:00:00' 以上詳細(xì)描述了査詢(xún)條件精確到日和秒對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分 的處理與精確到日時(shí)的處理類(lèi)似,不再贅述。
(2)接收的查詢(xún)條件為大于查詢(xún)參數(shù); 查詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,例如,接收的查詢(xún)條件為"大于2008年"、或"大于2008年08月"、或"大于2008年 08月08日"、或"大于2008年08月08日08時(shí)"、或"大于2008年08月08日08時(shí)08分"、 或"大于2008年08月08日08時(shí)08分08秒"。 這種情況F將查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的歩驟可以包括 所述將所述査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將查詢(xún)參數(shù)轉(zhuǎn)換 成大于等于查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間,查詢(xún)參數(shù)的最小時(shí)間單 位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。 假設(shè)用戶(hù)查找日期大于2008-08-08的數(shù)據(jù),則時(shí)間區(qū)間為"> = '2008-08-0900:00:00,",其中,最小時(shí)間單位是日。 假設(shè)FSendTime ='參數(shù)日期',則查找日期大于2008-08-08的數(shù)據(jù)時(shí),不同的
數(shù)據(jù)庫(kù)的轉(zhuǎn)換結(jié)果可以如下 SqlServer :FSendTime >= '2008-08-09 00:00:00,
Oracle : FSendTime >= T0_DATE(' 2008-08-09 00:00:00' ,' YYYY-MM-DD朋24: MI: SS')
DB2 :FSendTime >= '2008-08-09 00:00:00, 以上詳細(xì)描述了查詢(xún)條件精確到日對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分、秒的
處理與精確到日時(shí)的處理類(lèi)似,不再贅述。
(3)接收的查詢(xún)條件為大于等于查詢(xún)參數(shù)。 查詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,例如,接收的查詢(xún)條件為"大于等于2008年"、或"大于等于2008年08月"、或"大 于等于2008年08月08日"、或"大于等于2008年08月08日08時(shí)"、或"大于等于2008年 08月08日08時(shí)08分"、或"大于等于2008年08月08日08時(shí)08分08秒"。
SqlServer :FSendTime > = '2008-08-08 00:00:00,
Oracle : FSendTime >= TO_DATE(' 2008-08-08 00:00:00' ,' YYYY-腿-DDHH24:MI:SS')
DB2 : FSendTime > = '2008-08-08 00:00:00, 以上詳細(xì)描述了查詢(xún)條件精確到日對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分、秒的 處理與精確到日時(shí)的處理類(lèi)似,不再贅述。
(4)接收的查詢(xún)條件為小于查詢(xún)參數(shù)。 查詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,例如,接收的查詢(xún)條件為"小于2008年"、或"小于2008年08月"、或"小于2008年 08月08日"、或"小于2008年08月08日08時(shí)"、或"小于2008年08月08日08時(shí)08分"、 或"小于2008年08月08日08時(shí)08分08秒"。 這種情況下將查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟可以包括 將査詢(xún)參數(shù)轉(zhuǎn)換成小于査詢(xún)參數(shù)的開(kāi)始時(shí)間的時(shí)間區(qū)間,查詢(xún)參數(shù)的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù) 存儲(chǔ)格式。 假設(shè)用戶(hù)查找日期小于2008-08-08的數(shù)據(jù),則時(shí)間區(qū)間為"< '2008-08-08 ()():()():()(),"。 假設(shè)FSendTime ='參數(shù)日期',則査找日期小于2008-08-08的數(shù)據(jù)時(shí),不同的
數(shù)據(jù)庫(kù)的轉(zhuǎn)換結(jié)果可以如F:
SqlServer : FSendTime < '2008-08-08 (X): 00:00'
Oracle: FSendTime <TO_DATE(' 2008-08-08 00:00:00' ,' YYYY-MM-DD朋24: MI: SS')
DB2 :FSendTime < '2008-08-08 ()(): ()(): (X)' 以上詳細(xì)描述了查詢(xún)條件精確到日對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分、秒的
處理與精確到日時(shí)的處理類(lèi)似,不再贅述。
(5)接收的查詢(xún)條件為小于等于查詢(xún)參數(shù)。 查詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精 確到秒,例如,接收的査詢(xún)條件為"小于等于2008年"、或"小于等于2008年08月"、或"小 于等于2008年08月08日"、或"小于等于2008年08月08日08時(shí)"、或"小于等于2008年 08月08日08時(shí)08分"、或"小于等于2008年08月08日08時(shí)08分08秒"。
這種情況下將查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟可以包括將查詢(xún)參數(shù)轉(zhuǎn)換成小于查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間,查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。 假設(shè)用戶(hù)查找日期小于等于2008-08-08的數(shù)據(jù),則時(shí)間區(qū)間為"<'2008-08-0900:00:00'",最小時(shí)間單位是日。 假設(shè)FSendTime ='參數(shù)日期',則查找日期小于等于2008-08-08的數(shù)據(jù)時(shí),不
同的數(shù)據(jù)庫(kù)的轉(zhuǎn)換結(jié)果可以如下
Sq:[ Server:
'2008-08-09 00:00:00'
TOJ)ATE(' 2008-08-09 00:00:00'
YYYY-MM-DD冊(cè)24:MI:SS')
FSendTimeOracle :FSendTimeDB2 :
FSendTime < '2008-08-09 00:00:00'
以上詳細(xì)描述了查詢(xún)條件精確到日對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分、秒的處理與精確到日時(shí)的處理類(lèi)似,不再贅述。
(6)接收的查詢(xún)條件為不等于查詢(xún)參數(shù)。 査詢(xún)參數(shù)可以精確到年、或精確到月、或精確到日、或精確到時(shí)、或精確到分、或精確到秒,例如,接收的查詢(xún)條件為"不等于2008年"、或"不等于2008年08月"、或"不等于2008年08月08日"、或"不等于2008年08月08日08時(shí)"、或"不等于2008年08月08日08時(shí)08分"、或"不等于2008年08月08日08時(shí)08分08秒"。 這種情況下將査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟可以包括將査詢(xún)參數(shù)轉(zhuǎn)換成小于所述查詢(xún)參數(shù)的開(kāi)始時(shí)間的時(shí)間區(qū)間、與大于等于查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間的集合,查詢(xún)參數(shù)的開(kāi)始時(shí)間和查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。假設(shè)用戶(hù)查找日期不等于2008-08-08的數(shù)據(jù),則時(shí)間區(qū)間為"< '2008-08-08
00:00:00, and > = '2008-08-09 00:00:00,",其中,最小時(shí)間單位是日。 假設(shè)FSendTime ='參數(shù)日期',則查找日期不等于2008-08-08的數(shù)據(jù)時(shí),不同
的數(shù)據(jù)庫(kù)的轉(zhuǎn)換結(jié)果可以如下
SqlServer :FSendTime 〈'2008-08-08 00:00:00' And FSendTime > =
'2008-08-0900:00:00' Oracle : FSendTime <TO_DATE(' 2008-08-08 00:00:00' ,' YYYY-MM-DD朋24: MI: SS')
AND FSendTime >= TO—DATE(' 2008-08-09 00:00:0(V ,' YYYY-MM-DD昍24:MI:SS')
DB2 : FSendTime < '2008-08-08 00:00:00' And FSendTime 〉='2008-08-0900:00:00' 以上詳細(xì)描述了查詢(xún)條件精確到日對(duì)應(yīng)的時(shí)間區(qū)間,在精確到年、月、時(shí)、分、秒的
9處理與精確到日時(shí)的處理類(lèi)似,不再贅述。 如下再介紹本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)日期查詢(xún)裝置,圖2描述了數(shù)據(jù)庫(kù)日期査詢(xún)裝置實(shí)施例的結(jié)構(gòu),包括接收單元201、展示單元202、轉(zhuǎn)換單元203和查詢(xún)單元204,其中 接收單元201,用于接收用戶(hù)的查詢(xún)請(qǐng)求;接收用戶(hù)通過(guò)展示單元202展示的輸入界面輸入的査詢(xún)條件; 展示單元202,用于在接收單元201接收了查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面;
轉(zhuǎn)換單元203,用于將接收單元201接收的查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間; 査找單元204,用于從數(shù)據(jù)庫(kù)中査找處于轉(zhuǎn)換單元203得到的時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。 從上可知,本實(shí)施例中數(shù)據(jù)庫(kù)日期查詢(xún)裝置可以將用戶(hù)輸入的查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間,進(jìn)而可以數(shù)據(jù)庫(kù)中查詢(xún)處于時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄,由于時(shí)間區(qū)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式,因此可以使用數(shù)據(jù)庫(kù)的索引進(jìn)行查詢(xún),從而提高查詢(xún)速度,可以減少査詢(xún)時(shí)間,提高查詢(xún)效率。 本發(fā)明實(shí)施例還提供了數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)包括本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)日期查詢(xún)裝置。 上述裝置和系統(tǒng)內(nèi)的各模塊之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于 -計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-OnlyMemory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory,翻)等。 以上對(duì)本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)日期查詢(xún)方法及裝置、數(shù)據(jù)庫(kù)進(jìn)行了詳細(xì)介紹,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
10
權(quán)利要求
一種數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,包括接收用戶(hù)的查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面;接收用戶(hù)通過(guò)所述輸入界面輸入的查詢(xún)條件;將所述查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間;從數(shù)據(jù)庫(kù)中查找處于所述時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。
2. 如權(quán)利要求1所述的數(shù)據(jù)庫(kù)日期査詢(xún)方法,其特征在于,接收的所述查詢(xún)條件為大于等于查詢(xún)參數(shù);所述將所述査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成大于等于所述查詢(xún)參數(shù)的開(kāi)始時(shí)間的時(shí)間區(qū)間,所述查詢(xún)參數(shù)的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
3. 如權(quán)利要求1所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,接收的所述査詢(xún)條件為小于查詢(xún)參數(shù);所述將所述查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成小于所述查詢(xún)參數(shù)的開(kāi)始時(shí)間的時(shí)間區(qū)間,所述査詢(xún)參數(shù)的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
4. 如權(quán)利要求1所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,接收的所述日期查詢(xún)條件為等于查詢(xún)參數(shù);所述將所述査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成大于等于查詢(xún)參數(shù)的開(kāi)始時(shí)間且小于所述査詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間,所述査詢(xún)參數(shù)的開(kāi)始時(shí)間和所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
5. 如權(quán)利要求1所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,接收的所述查詢(xún)條件為大于查詢(xún)參數(shù);所述將所述査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成大于等于所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間,所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
6. 如權(quán)利要求1所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,接收的所述査詢(xún)條件為小于等于查詢(xún)參數(shù);所述將所述查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成小于所述査詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間,所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
7. 如權(quán)利要求l所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,接收的所述查詢(xún)條件為不等于查詢(xún)參數(shù);所述將所述査詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間的步驟包括將所述查詢(xún)參數(shù)轉(zhuǎn)換成小于所述查詢(xún)參數(shù)的開(kāi)始時(shí)間的時(shí)間區(qū)間、與大于等于所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間的時(shí)間區(qū)間的集合,所述查詢(xún)參數(shù)的開(kāi)始時(shí)間和所述查詢(xún)參數(shù)的最小時(shí)間單位加1的開(kāi)始時(shí)間符合數(shù)據(jù)庫(kù)存儲(chǔ)格式。
8. 如權(quán)利要求4至7任一所述的數(shù)據(jù)庫(kù)日期查詢(xún)方法,其特征在于,所述最小時(shí)間單位是年、或月、或日、或時(shí)、或分、或秒。
9. 一種數(shù)據(jù)庫(kù)日期查詢(xún)裝置,其特征在于,包括接收單元、展示單元、轉(zhuǎn)換單元和查詢(xún)單元;所述接收單元,用于接收用戶(hù)的查詢(xún)請(qǐng)求;接收用戶(hù)通過(guò)所述展示單元展示的輸入界面輸入的查詢(xún)條件;展示單元,用于在所述接收單元接收了査詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面;轉(zhuǎn)換單元,用于將所述接收單元接收的查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間;查找單元,用于從數(shù)據(jù)庫(kù)中查找處于所述轉(zhuǎn)換單元得到的時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。
10. -種數(shù)據(jù)庫(kù),其特征在于,包括如權(quán)利要求9所述的數(shù)據(jù)庫(kù)日期查詢(xún)裝置。
全文摘要
本發(fā)明涉及數(shù)據(jù)庫(kù),公開(kāi)了數(shù)據(jù)庫(kù)日期查詢(xún)方法及裝置、數(shù)據(jù)庫(kù),其中所述方法包括接收用戶(hù)的查詢(xún)請(qǐng)求后,向用戶(hù)展示輸入界面;接收用戶(hù)通過(guò)所述輸入界面輸入的查詢(xún)條件;將所述查詢(xún)條件轉(zhuǎn)換成符合數(shù)據(jù)庫(kù)存儲(chǔ)格式的時(shí)間區(qū)間;從數(shù)據(jù)庫(kù)中查找處于所述時(shí)間區(qū)間的數(shù)據(jù)庫(kù)記錄。使用本發(fā)明,可以減少查詢(xún)時(shí)間,提高查詢(xún)效率。
文檔編號(hào)G06F17/30GK101710321SQ200910110278
公開(kāi)日2010年5月19日 申請(qǐng)日期2009年10月28日 優(yōu)先權(quán)日2009年10月28日
發(fā)明者覃君武 申請(qǐng)人:金蝶軟件(中國(guó))有限公司