项目中遇到的问题,需要将时间(时 分 秒)转为秒,业务上处理有些麻烦,尝试找了多种处理函数,然而并没有用
完美解决办法:
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