MySQL Query - IF CONDITION, DATE FORMAT, ADD DAY IN DATE, SUBTRACT DAY FROM DATE

1. IF CONDITION
SELECT IF(condition,true,false) AS row_name;

2. ADD 10 DAYS IN DATE
SELECT DATE_ADD("2019-10-01", INTERVAL 10 DAY)

3. SUBTRACT 10 DAYS FROM DATE
SELECT DATE_SUB("2019-10-01", INTERVAL 10 DAY);

4. FORMAT DATE
DATE_FORMAT(table.date, "%Y-%m-%d 23:59:59")

PRACTICAL EXAMPLE IN A SELECT-INSERT QUERY : 
INSERT INTO subscription_history(
customer_id,
sales_log_id,
customer_name,
plan_id,
plan_name,
plan_duration,
transaction_price,
subscription_plan_purchased_date,
subscription_activation_date,
subscription_end_date,
status,
created_by,
updated_by,
deleted_by,
deleted_at,
created_at,
updated_at)
SELECT 
sales_log.customer_id,
sales_log.id AS sales_log_id,
customers.name AS customer_name,
sales_log.plan_id,
subscription_plans.plan_name,
subscription_plans.plan_duration,
subscription_plans.plan_price AS transaction_price,
sales_log.sales_date AS subscription_plan_purchased_date,
sales_log.sales_date AS subscription_activation_date,
IF(subscription_plans.plan_duration > 1,DATE_FORMAT(DATE_ADD(sales_log.sales_date, INTERVAL subscription_plans.plan_duration-1 DAY),"%Y-%m-%d 23:59:59"),DATE_FORMAT(sales_log.sales_date, "%Y-%m-%d 23:59:59")) AS subscription_end_date,
1 AS status,
sales_log.created_by,
sales_log.updated_by,
NULL AS deleted_by,
NULL AS deleted_at,
sales_log.sales_date AS created_at,
sales_log.sales_date AS updated_at
FROM sales_log
LEFT JOIN subscription_history ON subscription_history.sales_log_id = sales_log.id
LEFT JOIN customers ON customers.id = sales_log.customer_id
LEFT JOIN subscription_plans ON subscription_plans.plan_id = sales_log.plan_id
WHERE subscription_history.id IS NULL AND sales_log.is_subscribed = 1;

Comments

Popular posts from this blog

Deploy laravel application to digital ocean droplet

WP register_post_type() with custom CMB2 meta box

Git post receive setup at server for git push to the production from local machine