我有一個包含開始日期和結束日期的表格。我想確保沒有新的日期會與開始和結束日期之間定義的任何時段重疊。有任何想法嗎 ?Oracle - 不在多行之間的日期
0
A
回答
1
你可以檢查爲新的日期現有的行插入之前:
SELECT COUNT(*) FROM THE_TABLE
WHERE (
? BETWEEN START_DATE AND END_DATE
OR
? BETWEEN START_DATE AND END_DATE
OR
START_DATE BETWEEN ? AND ?
) AND ROWNUM<2
(其中在新的週期的開始日期和結束日期進行測試?)。
你可能需要同步這個(例如用一個LOCK TABLE)來避免競爭條件。
0
而且什麼蒂洛說,下面還必須處理
SELECT COUNT(*) FROM THE_TABLE
WHERE (
DATE_1 BETWEEN START_DATE AND END_DATE
OR
DATE_2 BETWEEN START_DATE AND END_DATE
OR
START_DATE BETWEEN DATE_1 AND DATE_2
OR
END_DATE BETWEEN DATE_1 AND DATE_2
)
AND ROWNUM<2
+0
我在想第四個條款是多餘的。 – Thilo 2012-08-03 09:10:43
相關問題
- 1. Oracle與之間的日期?
- 2. Oracle之間日期與Microsoft之間日期
- 3. oracle之間的日期數據
- 4. 兩個日期之間的oracle差異
- 5. MySQL選擇日期不在日期之間的行
- 6. Oracle SQL:在日期之間填入日期
- 7. 的Oracle SQL - 兩個日期之間的差異爲多個ID
- 8. SQL查詢找到多行之間的日期期間
- 9. Oracle日期時間
- 10. Oracle在兩個不同模式的日期之間進行左連接
- 11. Mysql不在時間和日期之間
- 12. 在jQuery.validate和datepicker中的多個日期之間驗證日期
- 13. 日期之間的日期與時間
- 14. 行之間的MySQL日期時間
- 15. Excel在日期之間返回多列
- 16. 在日期變量的兩個日期之間選擇行
- 17. 如何在Oracle查詢中的兩個給定日期之間選擇日期?
- 18. 日期時間在2個日期時間值之間的行SQL
- 19. 計算不同行兩個日期之間的時間間隔
- 20. 如何在兩個給定日期之間將行分割成多行?
- 21. Oracle SQL - 日期之間的平均時間按主題
- 22. 在Oracle和MySQL之間添加日期的便攜方式?
- 23. Oracle SQL - 比較多行與日期
- 24. ios - 在日期之間(在實際日期中,不是天數)
- 25. MySQL之間的多個日期之間的小時數總和
- 26. Oracle在兩個日期之間將日期格式化爲字符串
- 27. 日期範圍之間進行選擇,在這些日期
- 28. Oracle日期時間datetime
- 29. 查找多組日期之間的最小和最大日期
- 30. 返回多個日期範圍之間的所有日期
這看起來不錯..但一個之情況仍然會無法處理......想象的是,在表8月1日和31日之間的時期如果在8月1日至9月30日之間的新日期被輸入,則採用8月,但在實際發生錯誤時應該視爲有效。 – cgval 2012-08-03 08:45:00
正確。爲此增加了另一個案例。請檢查。 – Thilo 2012-08-03 08:49:03