在MySQL數(shù)據(jù)庫(kù)中,有一個(gè)常用的函數(shù)叫做to_days,它可以將一個(gè)日期時(shí)間類型的值轉(zhuǎn)換為對(duì)應(yīng)的天數(shù),這在某些情景下非常實(shí)用。
但是,如果我們需要將一個(gè)包含時(shí)分秒的日期時(shí)間類型值轉(zhuǎn)換為對(duì)應(yīng)的天數(shù),該怎么做呢?答案就是使用時(shí)分秒to_days函數(shù)。
SELECT TIME_TO_SEC('08:30:00'); -- 輸出 30600 SELECT CONVERT(TO_DAYS('2021-09-01 08:30:00')*86400+TIME_TO_SEC('08:30:00')/86400,DECIMAL(18,6)) AS time_to_days; -- 輸出 738120.354167
上面的代碼中,我們將08:30:00這個(gè)時(shí)間轉(zhuǎn)換為了對(duì)應(yīng)的秒數(shù),然后通過(guò)to_days函數(shù)將日期轉(zhuǎn)換為天數(shù),乘以一天有多少秒,再加上上面轉(zhuǎn)換的秒數(shù),最后再將結(jié)果轉(zhuǎn)換為小數(shù)型,就得到了帶有時(shí)分秒的日期對(duì)應(yīng)的天數(shù)。
需要注意的是,由于轉(zhuǎn)換成了小數(shù)型,因此精度可能會(huì)有所損失,但是通常情況下影響不大。