[MySQL] หาวันสุดท้ายของเดือนนี้ และหาว่าปีนี้มีกี่วัน

มาเริ่มที่ตัวแรกก่อนเลยครับ หาวันสุดท้ายของเดือนนี้
เริ่มต้นมาจาก ใน php มันจะมีฟังก์ชั่นนี้ครับ date('t') มันจะบอกเราว่าเดือนนี้จะลงท้ายด้วยอะไร 28, 30 หรือ 31 อะไรก็ว่าไป แล้วใน MySQL ล่ะ

มันไม่มีครับพี่น้อง... เลยต้องคำนวณเอาเอง เลยได้มาเป็นแบบนี้ครับ

DATE_FORMAT(LAST_DAY(NOW()), '%e')

ก็คือให้ทำการหา lastday จาก now() ก่อน จากนั้นค่อยปรับ format มัน
ตัวอย่างในการใช้งานเช่น

SELECT DATE_FORMAT(LAST_DAY(NOW()), '%e') AS `lastday` FROM `xxx`;
แบบนี้เป็นต้นครับ
มันก็จะได้ค่าออกมาประมาณนี้
+-----------+
|  lastday |
+-----------+
|  31        |
+-----------+

ส่วนอีกตัวหนึ่งก็คือหาว่าปีนี้มีอยู่กี่วัน 365 หรือ 366

DATEDIFF((NOW() + INTERVAL 1 YEAR), NOW())

ไม่น่าจะยากเท่าไรนะครับ ก็คือเอาวันนี้ที่ถูกบวกเพิ่มไปอีก 1 ปีข้างหน้ามาลบด้วยวันนี้ (คงไม่ต้องยกตัวอย่างแล้วมั้ง)

หวังว่าจะเป็นแนวทางให้ได้ไม่มากก็น้อยนะครับ

Comments