首页 > 代码库 > MYSQL计算两个字段日期差
MYSQL计算两个字段日期差
一,TIMESTAMPDIFF
语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:
- FRAC_SECOND。表示间隔是毫秒
- SECOND。秒
- MINUTE。分钟
- HOUR。小时
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
二、str_to_date
MySQL内置函数,在mysql里面利用str_to_date()把字符串转换为日期。
示例:分隔符一致,年月日要一致
select str_to_date(‘2008-4-2 15:3:28‘,‘%Y-%m-%d %H:%i:%s‘);
select str_to_date(‘2008-08-09 08:9:30‘, ‘%Y-%m-%d %h:%i:%s‘);
例 :以下计算两个字段的时间差 (年) 注:第二个时间字段时间不用带时间格式
SELECT user_id AS 姓名 ,
(CASE WHEN sex=0 THEN ‘女‘ ELSE ‘男‘ END) AS 性别,
mobileno AS 电话,
startdate AS 入职日期,
enddate AS 到职日期,
(CASE WHEN enddate>0 THEN
TIMESTAMPDIFF(YEAR,STR_TO_DATE(startdate,‘%Y-%m-%d %Y‘),enddate)
ELSE
TIMESTAMPDIFF(YEAR,STR_TO_DATE(startdate,‘%Y-%m-%d %Y‘),LOCALTIME()) END )AS 工龄,
curstar AS 星级,
curshopname AS 门店,
strength AS 优势 ,
weakness AS 劣势,
improve AS 进步点 ,
memo AS 备注,
(CASE WHEN enddate>0 THEN ‘离职‘ ELSE ‘在职‘ END ) AS 状态
FROM ft_sales
MYSQL计算两个字段日期差