0

TOTAL_PRICE次のクエリを使用して、カート テーブルからを取得しようとしました。現在TOTAL_PRICE、過去 30 日間から取得されます。TOTAL_PRICEしかし、今月のを取得するようにクエリを変更する必要があります。つまり、PURCHASED_DATE当月の 1 から 30/31 の間である必要があります。

SELECT TOTAL_PRICE
FROM CUST_CART_TABLE
WHERE USER_ID      = '"+userId+"'
AND (PURCHASED_DATE BETWEEN TO_DATE(SYSDATE-30, 'DD-MM-YY') AND TO_DATE(SYSDATE,'DD-MM-YY')
4

5 に答える 5

2

TRUNC と LAST_DAY を使用できます。

SELECT TOTAL_PRICE
FROM CUST_CART_TABLE
WHERE USER_ID      = '"+userId+"'
AND (TRUNC(PURCHASED_DATE) BETWEEN TRUNC(SYSDATE, 'MM') AND TRUNC(LAST_DAY(SYSDATE)));
于 2013-10-29T11:13:12.133 に答える
2

あなたはこれを試すことができます -

SELECT TOTAL_PRICE
    FROM CUST_CART_TABLE
    WHERE USER_ID      = '"+userId+"'
AND TRUNC(PURCHASED_DATE,'MONTH') = TRUNC(SYSDATE,'MONTH');

今月のレコードを返します。

于 2013-10-29T11:19:17.770 に答える
1

月を単純に比較します。つまり、'mm' と 'yyyy' の組み合わせです。

SELECT TOTAL_PRICE
FROM CUST_CART_TABLE
WHERE USER_ID = '"+userId+"'
AND TO_CHAR(PURCHASED_DATE,'yyyymm') = TO_CHAR(SYSDATE,'yyyymm');
于 2013-10-29T11:48:14.607 に答える
1
    SELECT TOTAL_PRICE
    FROM CUST_CART_TABLE
    WHERE USER_ID      = '"+userId+"'
    AND (PURCHASED_DATE BETWEEN 
SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) 
AND
 SELECT DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0))
于 2013-10-29T11:13:47.947 に答える