我目前將WordPress高級自定義字段日期存儲在我的數據庫中作爲時間戳,但由於來自新插件的要求,我現在必須將它們存儲爲YYYYMMDD格式。將一週添加到以YYYMMDD格式存儲的SQL值
我有一個chronjob設置爲每天晚上運行,爲我的網站上每個每週事件增加一週(604800),其中'event_date'小於當前的UNIX_TIMESTAMP。這將重新發佈下一週的活動。
我假設我需要的YYYYMMDD格式轉換爲時間戳,添加604800然後再轉換回來,但真的不知道如何去了解它(SQL是不是我的強項!)
的當前SQL我必須添加604800到每個職位的類別ID爲29(每週)的時間戳,並添加1209600到類別ID 19(每兩週)如下...
代碼如下已更新,是加工!
UPDATE wp_postmeta rh INNER JOIN ( SELECT ID, wt.term_id FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id INNER JOIN wp_term_relationships wpr ON wpr.term_taxonomy_id = wtt.term_taxonomy_id INNER JOIN wp_posts ON ID = wpr.object_id WHERE taxonomy = 'category' AND (wt.term_id=32) AND post_type = 'post' ) t ON rh.post_id = t.ID SET rh.meta_value = CASE WHEN t.term_id = 32 THEN DATE_FORMAT(STR_TO_DATE(rh.meta_value, '%Y%m%d') + INTERVAL 1 WEEK, '%Y%m%d') ELSE rh.meta_value END WHERE rh.meta_key = 'event_date' AND rh.meta_value < UNIX_TIMESTAMP();
會有人能夠提出增加一個星期(或雙週),到現在存儲在YYYYMMDD格式爲這些事件的最好方法?
這需要存儲在PHP腳本這樣我就可以每天晚上自動設置chronjob執行並更新此。
在此先感謝, 馬克。
event_date數據類型是一個varchar? – scaisEdge
event_date的meta_key的meta_value存儲爲longtext –
是的,這是'wp_postmeta'鍵/值存儲的典型問題。這些值都是文本。 –