一、case when
第一种 格式 : 简单Case函数 :
格式说明
case 列名
when 条件值1 then 选择项1
when 条件值2 then 选项2.......
else 默认值 end
例子:
select
case job_level
when '1' then '水平1'
when '2' then '水平2'
when '3' then '水平3'
else '其他' end
from dbo.employe
第二种 格式 :Case搜索函数
格式说明
case
when 列名= 条件值1 then 选择项1
when 列名=条件值2 then 选项2.......
else 默认值 end
例子:
update employee
set e_wage =
case
when job_level = '1' then e_wage*1.97
when job_level = '2' then e_wage*1.07
when job_level = '3' then e_wage*1.06
else e_wage*1.05 end
二、unix_timestamp
如果不带参数调用,返回一个Unix时间戳(自“1970-01-0100:00:00”UTC)作为无符号整数。
如果UNIX_TIMESTAMP()被调用有一个日期参数,它返回的参数为秒,自“1970-01-0100:00:00”UTC的数值。
日期参可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或数字格式YYYYMMDD或YYYYMMDD。
三、from_unixtime
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串
后面的 '%Y%m%d' 主要是将返回值格式化
例如:
>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )
->20071120
>SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d日' )
->2007年11月20日
四、DATEDIFF 计算两个时间的差值
计算相差的天数
select datediff(DAY,'2012/8/1','2012/8/20') as daysum有多个可以选择的参数:MONTH为月、DAY为查询天、HOUR为小时、MINUTE为分钟、SECOND为秒。在计算小时的时候,可能会有错误,所以使用下面的方式计算:
hour(final-time) - hour(start_time) + 24 * datediff(final_time, start_time)