我有一些表中有日期。基於日期的動態表名
如何根據日期查詢它們。有多個帶有prefix_date格式的表。
我的意思是如果表的名稱是foo,今天的日期是2016 06 09.我需要訪問的表將是foo_2016_06_09
。
我需要在日期前一天每天運行此查詢。這可能嗎?如果是的話如何?
我有一些表中有日期。基於日期的動態表名
如何根據日期查詢它們。有多個帶有prefix_date格式的表。
我的意思是如果表的名稱是foo,今天的日期是2016 06 09.我需要訪問的表將是foo_2016_06_09
。
我需要在日期前一天每天運行此查詢。這可能嗎?如果是的話如何?
DATE_FORMAT(NOW(),'%Y_%m_%d')
將恢復爲2016_06_09
,您可以連接在保持表的名稱部分,使用爲dynamic query:
SET @table_name:='foo_';
SET @date_part:=DATE_FORMAT(NOW(),'%Y_%m_%d');
SET @sql:=CONCAT('SELECT * FROM ', @table_name, @date_part);
PREPARE dynamic_statement FROM @sql;
EXECUTE dynamic_statement;
DEALLOCATE PREPARE dynamic_statement;
前一天,用DATE_SUB
SET @date_part:=DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y_%m_%d');
答案有幫助嗎?如果它不工作,請添加一些評論,然後我們可以添加/更新答案。 – Arulkumar
非常感謝,這有點幫助 –
這種問題是有症狀的糟糕的設計。 – Strawberry