[英]Select Date with Specific Time SQL
我有下表:
oDate oTime oAct
--------------------------------------
2017-06-01 00:00:00 A
2017-06-01 01:00:00 B
2017-06-01 02:00:00 C
ff.
2017-06-02 00:00:00 B
ff.
我想選擇之前(僅在21:00:00之后)和之后的一天。
假設,如果我選擇“ 2017-06-02”,則結果應為:
oDate oTime oAct
--------------------------------------
2017-06-01 22:00:00 A
2017-06-02 00:00:00 B
2017-06-02 01:00:00 C
ff.
2017-06-03 00:00:00 C
ff.
另外,用於查詢。 我只有一個參數,即@oDate date
。
請指教。
謝謝。
如果我正確地遵循了您的問題,我認為您在where子句之后,例如:
select
*
from YourTable
where (
oDate > '20170602'
OR
(oDate = '20170602' AND oTime >= '21:00:00')
)
這將為您提供2017-06-02之后的所有日期,以及該日期21:00及之后的時間
為了使可能對這些列,我建議你不要試圖隨時間的日期相結合存在索引最好使用像這樣的DATEADD(日,DATEDIFF(日,0,大館),oTime),然后試圖篩選> =' 20170602 21:00:00',因為這將產生表格掃描。
也許這會有所幫助
select
*
from YourTable
where (
oDate > @dateparameterhere
OR
(oDate = @dateparemterhere AND oTime >= '21:00:00')
)
嘗試將此串聯字段制成日期時間字段
select
* from table
where
cast (cast(odate as varchar(max)) + ' ' + cast(otime as varchar(max)) as datetime) < cast('2017-06-02 21:00:00' as datetime)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.