1. 日期时间函数
MySQL里面时间分为三类:时间、日期、时间戳(含有时分秒的sysdate)。
如执行:
select now(), year(now()) 年, month(now()) 月, day(now()) 日, date(now()); select CURRENT_DATE() , CURRENT_TIME(), CURRENT_TIMESTAMP() from dual; 昨天、今天、明天: select now()-1 昨天, now() 今天, now()+1 明天 from dual; 发现与Oracle中的日期加减操作有所不同。
select date_add(now(), INTERVAL 2 year) from dual; //增加两年 select date_add(now(), INTERVAL -1 day) 昨天, now() 今天, date_add(now(), INTERVAL +1 day) 明天;
2. 字符串相关函数
补:dual
dual虚拟表
为了满足 select …from …; 格式用的
比如:
select sysdate from dual;
获取系统时间。
其实mysql也有 select now();方式 不需要dual
select concat('hello ', 'mysql ', 'haha ', 'hehe ') from dual; (Oracle默认只能拼两个,如需多个拼接可以使用嵌套。) select 'hello ' || 'mysql ' from dual; ‘||’ 在 MySQL不可以使用。
日期转字符串:
在MySQL中没有to_date函数,进行日期转换需使用date_format()来代替。
select date_format('2013-5-11', 'yyyy-mm-dd') from dual; 在Oracle中的‘yyyy-mm-dd’MySQL下不支持。 select date_format(now(), '%Y-%m-%d') from dual; y和Y不一样。 select date_format(now(), '%Y-%c-%d %h:%i:%s') from dual; c和m、M不一样 所以yyyy-mm-dd hh24:mi:ss格式在MySQL中对应'%Y-%c-%d %h:%i:%s'
字符串转日期:
select str_to_date('2013-6-04 05:14:15' , '%Y-%c-%d %h:%i:%s') from dual;
3. 数学相关函数
补:向上向下取整
向上取整 不管四舍五入的规则 只要后面有小数前面的整数就加1
向下取整 不管四舍五入的规则 只要后面有小数忽略小数
数学相关函数就不给予展示