Rumah > Soal Jawab > teks badan
Saya mempunyai set data dalam sistem pengurusan perpustakaan saya dan saya menggunakan pertanyaan di bawah untuk mendapatkan medan tertentu sahaja.
select BookName,IssuedDate,ToBEReturnDate,BookStatus from issuedbooks; RESULT: Book Name Issued Date Return Date ReceivedDate Book Status Book 1 5/1/2022 5/14/2022 Not Received Book 2 5/2/2022 5/15/2022 Not Received Book 3 5/3/2022 5/16/2022 Not Received Book 4 5/4/2022 5/17/2022 5/24/2022 Received Book 5 5/5/2022 5/18/2022 Not Received Book 6 5/5/2022 6/10/2022 Not Received
Kini, jika tiada nilai tarikh diterima, saya perlukan fungsi DATEDIFF untuk mendapatkan perbezaan tarikh antara tarikh hari ini dan ReturnDate. Juga, saya tidak memerlukan nilai negatif. Contohnya nilai if currdate()<ToBEReturnDate
hendaklah sifar (bermaksud pengguna mempunyai lebih masa untuk memulangkan buku), jika tidak perlu ada perbezaan.
Keluaran akhir sepatutnya kelihatan seperti ini,
Book Name IssuedDate ReturnDate ReceivedDate BookStatus DateExpire Book 1 5/1/2022 5/14/2022 Not Received 15 Book 2 5/2/2022 5/15/2022 Not Received 14 Book 3 5/3/2022 5/16/2022 Not Received 13 Book 4 5/4/2022 5/17/2022 5/24/2022 Received 7 Book 5 5/5/2022 5/18/2022 Not Received 11 Book 6 5/5/2022 6/10/2022 Not Received 0
Adakah ada cara untuk menggunakan fungsi datediff mengikut keperluan saya?
P粉2266425682024-04-02 09:09:35
Saya percaya kita memerlukan receiveddate
列,该列在您的原始查询中缺失。此外,作为 date
日期类型,receiveddate
Lajur tidak membenarkan rentetan kosong sebagai nilainya, kita perlu menyimpannya sebagai nol tetapi kemudiannya boleh memaparkannya sebagai rentetan kosong. Ini adalah kod yang saya tulis dan uji di meja kerja.
select BookName as 'Book Name',IssuedDate,ToBEReturnDate as ReturnDate, ifnull(receiveddate,'') as ReceivedDate , BookStatus, case when receiveddate is null then if(datediff(current_date(),tobereturndate)>0, datediff(current_date(),tobereturndate), 0) else if(datediff(receiveddate,tobereturndate)>0, datediff(receiveddate,tobereturndate), 0) end as DateExpire from issuedbooks ;
P粉4188540482024-04-02 00:25:28
Saya rasa ia ialah:
SELECT BookName,IssuedDate,ToBEReturnDate,BookStatus , CASE WHEN GETDATE() balas0