HomeMYSQLDATETIME🔥 Advanced Level Date-Time Questions in MySQL

🔥 Advanced Level Date-Time Questions in MySQL

1. Current quarter

WHERE QUARTER(col)=QUARTER(CURDATE()) AND YEAR(col)=YEAR(CURDATE())

2. Last quarter

WHERE QUARTER(col)=QUARTER(CURDATE()-INTERVAL 1 QUARTER) AND YEAR(col)=YEAR(CURDATE()-INTERVAL 1 QUARTER)

3. Cumulative monthly sales

SELECT month, SUM(amount) OVER (ORDER BY month) FROM (SELECT DATE_FORMAT(col,'%Y-%m') AS month, SUM(amount) AS amount FROM table GROUP BY month) AS t;

4. Rolling 12-month summary

WHERE col >= CURDATE() - INTERVAL 12 MONTH GROUP BY DATE_FORMAT(col,'%Y-%m')

5. Avg login-duration

SELECT AVG(TIMESTAMPDIFF(SECOND,login,logout))/3600 FROM sessions;

6. Overtime >9 hrs

WHERE TIMESTAMPDIFF(HOUR,in_time,out_time)>9

7. Multiple logins/day

SELECT user_id, DATE(login), COUNT(*) FROM logins WHERE login >= CURDATE()-INTERVAL 7 DAY GROUP BY user_id, DATE(login) HAVING COUNT(*)>1;

8. Top‑5 busiest order days

SELECT DATE(col), COUNT(*) AS cnt FROM orders GROUP BY DATE(col) ORDER BY cnt DESC LIMIT 5;

9. Weekday vs weekend segments

SELECT DAYOFWEEK(col)<=6 AS is_weekday, COUNT(*) FROM table GROUP BY is_weekday;

10. Convert UTC to IST

SELECT CONVERT_TZ(col,'UTC','Asia/Kolkata') FROM table;

11. Create view for current week

CREATE VIEW this_week AS SELECT * FROM tbl WHERE YEARWEEK(col,1)=YEARWEEK(CURDATE(),1);

Share: 

No comments yet! You be the first to comment.

Leave a Reply

Your email address will not be published. Required fields are marked *