[英]ms access sql query criteria between dates fields
在access2016中,具有包含字段的表'tbl_employee'。 (employee_name,emp_no,date_entry,date_access_created,UserHandledBY),例如
JohnSmith, 1234, 7/19/2018, 7/24/2018, tim
Mickey, 321, 7/19/2018, 7/19/2018, kim
獲取date_entry和date_access_created為> = 2天的所有員工列表的條件。
select employee_name, emp_no, date_entry, date_access_created
from tbl_employee
where date_entry >= 2
嘗試使用DateDiff :
select
employee_name, emp_no, date_entry, date_access_created
from
tbl_employee
where
DateDiff("d", date_entry, date_access_created) >= 2
凈:
我不確定您要問的是什么,但是如果您希望在date_entry和date_access_created都等於或大於兩個的情況下進行查詢工作,則只需在WHERE語句中進行即可。 往下看:
select employee_name, emp_no, date_entry, date_access_created
from tbl_employee
where ((date_entry >= 2) AND (date_access_created >= 2))
我所做的就是編輯WHERE行,如下所示
where ((date_entry >= 2) AND (date_access_created >= 2))
添加“與”功能后,您可以添加其他參數來過濾結果。
請讓我知道這是否達到了您的預期結果。
@net正如我在之前的評論中提到的那樣,似乎您要進行日期比較。 如果是這樣,那么你可以做
WHERE DATEDIFF(DD, date_entry, date_access_created) >= 2
這將表明該行在指定的兩個日期之間相差兩天以上。
它的工作方式是,說兩個日期之間有多少天,在您的示例中,第一行的日期相差5
天。
完整的查詢將是:
select employee_name, emp_no, date_entry, date_access_created
from tbl_employee
WHERE DATEDIFF(DD, date_entry, date_access_created) >= 2
從評論中的問題編輯:
是的,您可以排除周末,實際上我不久前就這樣做了,並使用了我能找到的最簡單的方法。
(DATEDIFF(dd, date_entry, date_access_created) + 1)
-(DATEDIFF(wk, date_entry, date_access_created) * 2)
-(CASE WHEN DATENAME(dw, date_entry) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, date_access_created) = 'Saturday' THEN 1 ELSE 0 END)
我知道它看起來有很大不同,但是它的工作方式與我提到的第一個相同。 它使用相同的datediff參數作為開始日期和結束日期,但它唯一要做的一點就是檢查那些天是星期天和星期六,如果這些天出現了,我們就不會減去總天數在兩個日期之間。
因此,如果您在這兩個日期字段之間有7天的時間,請說它是從星期一到星期日。 可以說,我們在那里有一個星期六,一個星期日,所以這是我們不希望有2天的總計數,所以它會相差7-2 = 5天。
希望這是有道理的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.