項目中遇到的問題,需要將時間(時 分 秒)轉為秒,業務上處理有些麻煩,嘗試找了多種處理函數,然而並沒有用
完美解決辦法:
TIME_TO_SEC 格式'HH:MM:SS'或HHMMSS
SELECT
userId,marks, ifnull(TIME_TO_SEC(usedTime),'0') usedTimes,usedTime
FROM
x_courseissued x
where
x.isflag= 'B' AND x.flag= 0
AND (x.stateFlag='Y' or x.stateFlag='P')
並且這個函數可以相互轉換:秒 轉 時 分 秒
SELECT SEC_TO_TIME(120);
但是TIME_TO_SEC 是把 時分秒轉為 秒,並不會對年月日進行處理;
如果業務有需要可以使用UNIX_TIMESTAMP
UNIX_TIMESTAMP 函數返回的是自1970年以來的秒數,所以時間計算業務需要的話可以使用這個函數
應用場景計算兩個時間差開始時間 結束時間
SELECT (UNIX_TIMESTAMP(STR_TO_DATE(end_time,'%Y-%m-%d %H:%i:%s')) -
UNIX_TIMESTAMP(STR_TO_DATE(begin_time,'%Y-%m-%d %H:%i:%s'))) useTime
SELECT (UNIX_TIMESTAMP(STR_TO_DATE('2017-10-1 00:05:00','%Y-%m-%d %H:%i:%s')) -
UNIX_TIMESTAMP(STR_TO_DATE('2017-10-1 00:00:00','%Y-%m-%d %H:%i:%s'))) useTime