[英]how to check database already exists in sql server? and how stop the query if database already exists?
[英]SQL Query to check if a timeblock already exists
搜索了很多,發現了很多,並提出了一個有效的查詢,但是有點慢。
我要檢查的是以下情況:
我有一個與StartTime
和EndTime
約會的表。 當我插入新約會時,當前不檢查指定時間timerange
是否已有某種約會。 例如,我想插入一個帶有時間timeblock
從09:00-09:30的約會,但是已經有一個從09: timeblock
:30開始的約會,那么我需要通過查詢返回該特定約會。 同樣,需要返回重疊的塊和整個塊。 因此,實際上每個彼此聯系的約會都需要返回。
我現在有以下查詢:
SELECT * from dbo.Appointments
WHERE
(('2017-09-26 09:00:00' > StartTime AND '2017-09-26 09:00:00' < EndTime)
OR
('2017-09-26 09:30:00' > StartTime AND '2017-09-26 09:30:00' < EndTime)
OR
(StartTime BETWEEN '2017-09-26 09:00:00' AND '2017-09-26 09:30:00'))
這將返回與新約會重疊或在新約會范圍內的每個約會,但這有點慢。
是否有其他query
可以在一個SELECT中進行檢查,或者此OR
OR
語句是唯一的解決方案?
如果希望SQL快速運行,則肯定需要在StartTime
和EndTime
上建立索引。 而且,我猜下面的查詢也可以滿足您的需求,而且更微妙
SELECT * from dbo.Appointments
WHERE EndTime > '2017-09-26 09:00:00' AND StartTime < '2017-09-26 09:30:00'
比較兩個日期時在SQL中使用BETWEEN 。 不要使用>或<
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.