來自 MySQL 開發站點 -
MAKETIME 函式 -
- MAKETIME(小時,分鐘,秒)
回傳根據小時、分鐘和秒引數計算的時間值。
第二個引數可以有小數部分。
mysql> SELECT MAKETIME(12,15,30); -> '12:15:30'
在我的機器上測驗后 -
mysql> SELECT MAKETIME(1, 0, 0) AS output;
----------
| output |
----------
| 01:00:00 |
----------
mysql> SELECT MAKETIME(1, 30, 0) AS output;
----------
| output |
----------
| 01:30:00 |
----------
現在,試圖構建負時間——
mysql> SELECT MAKETIME(-1, 0, 0) AS output;
-----------
| output |
-----------
| -01:00:00 |
-----------
mysql> SELECT MAKETIME(-1, 30, 0) AS output;
-----------
| output |
-----------
| -01:30:00 |
-----------
現在我嘗試-00:30:00使用MAKETIME函式構造時間。我試試——
mysql> SELECT MAKETIME(-0, 30, 0) AS output;
----------
| output |
----------
| 00:30:00 |
----------
結果并不如預期。然后我嘗試 -
mysql> SELECT MAKETIME(0, -30, 0) AS output;
--------
| output |
--------
| NULL |
--------
我在這里得到一個空輸出。
我想不出正確的方法來做到這一點。
我有可能做到嗎?
uj5u.com熱心網友回復:
這似乎是 maketime 功能的一個缺口;mariadb 檔案直截了當地說“如果分鐘或秒不在 0 到 60 的范圍內,則回傳 NULL。” 這似乎是我可以測驗的所有 mysql 和 mariadb 版本的行為。
我建議你改用 sec_to_time:
sec_to_time((0)*3600 (-30)*60 (0))
uj5u.com熱心網友回復:
此功能似乎不適用于此目的。您可能需要一些字串操作和最終轉換,如下所示:
SELECT CAST(CONCAT_WS(':', '-0', 30, 0) AS TIME);
-00:30:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/394404.html
下一篇:C語言 貪吃蛇
