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

ส่งคืน null สำหรับ date_format เมื่ออินพุตเป็นโมฆะใน MySQL?


ใช้ฟังก์ชัน IF() เพื่อคืนค่า null สำหรับ date_format เมื่ออินพุตเป็น null ใน MySQL ไวยากรณ์มีดังนี้ −

เลือก IF(yourDateColumnName,date_format(yourDateColumnName, '%d/%m/%Y'), NULL) จาก yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง returnNullWhenInputIsNullDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ShippingDate datetime -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.21 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo(ShippingDate) ('2019-01-21'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.37 วินาที) mysql> แทรกลงใน returnNullWhenInputIsNullDate (ShippingDate) ค่า (NULL) เคียวรีตกลง 1 แถว ได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) ('2018-03-25'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) (NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) (NULL) ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) ('2012-04-23'); แบบสอบถาม ตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) ('2018-12-01'); สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า returnNullWhenInputIsNullDemo (ShippingDate) ('2016) -11-13');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+---------------------+| รหัส | วันที่จัดส่ง |+----+---------------------+| 1 | 2019-01-21 00:00:00 || 2 | NULL || 3 | 2018-03-25 00:00:00 || 4 | NULL || 5 | NULL || 6 | 2012-04-23 00:00:00 || 7 | 2018-12-01 00:00:00 || 8 | 2016-11-13 00:00:00 |+----+--------------------+8 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อคืนค่า null สำหรับ date_format เมื่ออินพุตเป็น null ใน MySQL -

mysql> เลือก IF(ShippingDate,date_format(ShippingDate, '%d/%m/%Y'), NULL) จาก returnNullWhenInputIsNullDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อน>+--------------------------------------------- ---------------+| IF(ShippingDate,date_format(ShippingDate, '%d/%m/%Y'), NULL) |+-------------------------- ------------------------------------+| 21/01/2019 || NULL || 25/03/2018 || NULL || NULL || 23/04/2555 || 01/12/2018 || 13/11/2559 |+---------------------------------------------------------- ------------------+8 แถวในชุด (0.05 วินาที)