常に入力せずに現在の日付をwhere句に入力するにはどうすればよいですか?
Select SALEITEMS.SKU,
STOCK.SHORTDESC,
SALEITEMS.SALEPRICEEX,
SALEITEMS.COSTPRICEEX,
SUM(((SALEITEMS.SALEPRICEEX - SALEITEMS.COSTPRICEEX) /
SALEITEMS.SALEPRICEEX) * 100) AS GP
From SALEITEMS
Inner Join STOCK On SALEITEMS.SKU = STOCK.SKU
where SALEITEMS.FP_DATE = '13 Nov 2018'
group by 1,2,3,4
current_date
を使用:
where SALEITEMS.FP_DATE = current_date
これは、FP_DATE
のデータ型がDATE
であることを前提としています。
FP_DATE
がtimestamp
列の場合、上記は列の時間部分が00:00:00
である行のみを返します。時間部分を無視するには、列をdate
値にキャストします。
where cast(SALEITEMS.FP_DATE as date) = current_date
ただし、これは列のインデックスを使用しないため、十分に高速ではない可能性があります。その場合、通常のアプローチは範囲クエリを使用することです:
where SALEITEMS.FP_DATE >= current_date
and SALEITEMS.FP_DATE < current_date + 1
current_date + 1
は「明日」です(午前0時)