Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รับความแตกต่างระหว่างวันที่และคำนวณเงินเดือนด้วย MySQL หรือไม่


สมมติว่าคุณจำเป็นต้องได้รับผลต่างระหว่างวันที่ (JoiningDate – EndDate) ของเดือน เช่น วันเพื่อคำนวณเงินเดือน เงินเดือนรายวันคือ 300; ดังนั้น 20 วันก็จะ 6000 เช่นเดียวกัน 27 วันก็จะเป็น 8100

ตัวอย่างเช่น ให้เราสร้างตารางก่อน

mysql> สร้างตาราง DemoTable -> ( -> วันที่เข้าร่วม -> วันที่สิ้นสุด -> , -> ค่า int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.16 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('2019-01-01','2019-01-31',500) เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.37 วินาที)mysql> แทรกลงในค่า DemoTable ('2019-02 -12','2019-02-25',900);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+-------------+-------+| เข้าร่วมวันที่ | EndDate | ค่า |+-----------+-------------+-------+| 2019-01-01 | 2019-01-31 | 500 || 2019-02-12 | 2019-02-25 | 900 |+-----------+-------------+-------+2 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อคำนวณเงินเดือน สำหรับความแตกต่างของวันที่ ใช้ DATEDIFF() -

mysql> เลือก ABS(DATEDIFF(JoinDate,EndDate) * Value) AS Total จาก DemoTable

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+| รวม |+-------+| 15000 || 11700 |+-------+2 แถวในชุด (0.14 วินาที)