Firebird

where 子句中的目前日期

  • November 13, 2018

如何將目前日期放入 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是“明天”(午夜)

引用自:https://dba.stackexchange.com/questions/222399