簡體   English   中英

選擇帶有特定時間SQL的日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM