台灣最大程式設計社群網站
線上人數
1048
 
會員總數:245959
討論主題:189543
歡迎您免費加入會員
討論區列表 >> MS SQL >> 資料庫時間搜尋年月日
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料庫時間搜尋年月日
價值 : 20 QP  點閱數:720 回應數:2
樓主


初學者
110 6
164 9
發送站內信

各位請問一下
假如在資料庫內有以下這幾筆資料,
2014-01-01
2014-03-10
2015-01-10
2015-02-10
2016-01-25
2016-02-20
,而現在要依年、月、日一層一層作條件搜尋,(因想在report報表中在時間欄位選擇這邊,分別做年、月、日的三個下拉式)
在這種狀況下,如果要搜尋的時間區間為2014-01-01至2016-02-20這區間的資料
先依年開始做搜尋,
在往月開始作搜尋時(1-2月),變成有些會被刪掉>>2016-01-25
會導致搜尋出來的資料有誤,請問有什麼方法可以解?
謝謝。




搜尋相關Tags的文章: [ 時間搜尋,年月日 ] ,
本篇文章發表於2016-11-21 12:03
1樓
回應

四百龍銀
檢舉此回應
https://msdn.microsoft.com/zh-tw/library/ms174420.aspx
datepart
本篇文章回覆於2016-11-21 13:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

真的有點難
檢舉此回應
alter procedure proc_qq
(@年 nvarchar(4)='2016',
@月 nvarchar(2)='01',
@日 nvarchar(2)='01')
as

declare @sql nvarchar(max)=''
set @sql='select * from arf21 where 1=1 '

if isnull(@年,'') <> ''
begin
set @sql=@sql+' and year(arf2140_sdate)='''+@年+''''
end

if isnull(@月,'') <> ''
begin
set @sql=@sql+' and month(arf2140_sdate)='''+@月+''''
end

if isnull(@日,'') <> ''
begin
set @sql=@sql+' and day(arf2140_sdate)='''+@日+''''
end

exec(@sql)

在判斷一下 沒有年 但有月日 沒有月卻有日的狀況
本篇文章回覆於2016-11-21 17:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.