两个日期之间选择查询(select query between two dates)

2019-09-28 09:19发布

我想tomake一个在数据库中选择两个特定日期之间加入

这是我feelis在正确的道路上,但是是不正确

我怎样才能得到这个工作

SELECT --RTRIM(C.CustomerFirstName) + ' ' + LTRIM(C.CustomerLastName) as CustomerFullName,
       ROW_NUMBER() OVER(ORDER BY CP.ActionDate) AS RowNumber,
       C.CustomerFirstName,
       C.CustomerLastName,
       C.CustomerCompany,
       C.CustomerPosition,
       C.CustomerCountry,
       C.CustomerProvince,
       C.CustomerContact,
       CP.ActionDate,
       CP.ProductCode,
       CP.CustomerEmail
FROM   tblCustomers C
       JOIN tblCustomerProducts CP
            ON  C.CustomerEmail = CP.CustomerEmail


     ORDER BY ActionDate DESC
WHERE CP.ActionDate BETWEEN '1/17/2013' AND '19/12/2012'

Answer 1:

代替

WHERE CP.ActionDate BETWEEN '1/17/2013' AND '19/12/2012`

尝试这个:

WHERE CP.ActionDate BETWEEN '19/12/2012' AND '1/17/2013'

需要注意的是:这是因为BETWEEN谓词在SQL Server是不对称的 ,这意味着value1 BETWEEN value2 AND value3是相同的Value1 >= Value2 AND Value1 <= Value3 ,因此该值value2 ,之前AND必须小于或等于value3



Answer 2:

较小的日期必须首先上市

BETWEEN '12/19/2012'  AND '1/17/2013'


Answer 3:

没有任何与您当前查询的几个问题。

首先,你必须以错误的顺序的日期。

其次,你有ORDER BY在错误的地方。 该ORDER BY是在你的选择中列出的最后一项:

FROM tblCustomers C
JOIN tblCustomerProducts CP 
   ON C.CustomerEmail = CP.CustomerEmail
WHERE CP.ActionDate BETWEEN  '12/19/2012' AND '1/17/2013'
ORDER BY ActionDate DESC

你也可以使用:

FROM tblCustomers C
JOIN tblCustomerProducts CP 
   ON C.CustomerEmail = CP.CustomerEmail
WHERE CP.ActionDate >= '12/19/2012' AND CP.ActionDate <= '1/17/2013'
ORDER BY ActionDate DESC

我也建议你肯定的是,日期相同的方式格式化。 你有一个为DD/MM/YYYY ,另一个为MM/DD/YYYY



Answer 4:

你放错地方的日期,它应该是在第二次发生在首位较小和较大的一个:

WHERE CP.ActionDate BETWEEN '19/12/2012' AND '1/17/2013'

要么

WHERE CP.ActionDate >= '19/12/2012' AND CP.ActionDate <= '1/17/2013'


文章来源: select query between two dates