簡體   English   中英

ms訪問日期字段之間的sql查詢條件

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

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