Mysql的日期时间使用说明

在维护过程中,大家比较纠结的是时间字段的格式,我今天梳理了一下,mysql其他常用语法跟Oralce基本相似(包括注释等与Oracle都一样),差别比较大的也就date类型。

Mysql经常可能用到的时间格式
date(时间字段) 等于Oracle to_date(sysdate,'yyyy-mm-dd') 精确到天
DATE_FORMAT(sysdate, '%Y-%m-%d %H:%i:%S') 等于to_date(sysdate,'yyyy-mm-dd hh24:mi:ss') 自定义格式这里精确到秒,可以根据具体情况裁剪例如DATE_FORMAT(sysdate, '%Y-%m-%d %H') 精确到小时。
NOW(); -- 获取当前年月日时分秒 【等于Oracle yyyy-mm-dd hh24:mi:ss】;显示结果:2018-04-04 14:18:18
CURDATE(); -- 获取当前年月日 【等于Oracle yyyy-mm-dd】; 显示结果:2018-04-04
CURTIME(); -- 获取当前时分秒 【等于Oracle hh24:mi:ss】; 显示结果:14:18:40
NOW(),CURDATE(),CURTIME(); -- 获取当前当前年月日时分秒 2018-04-04 14:18:47 2018-04-04 14:18:47
UTC_TIMESTAMP(),UTC_DATE(),UTC_TIME(); -- 获取0时区的当前年月日时分秒2018-04-04 06:19:07 2018-04-04 06:19:07
timestamp(now(), '-00:30:00');---当前时间的30分钟前
汇总mysql关于时间的函数

另外:Mysql的注释方式跟Oracle一样。

*******************示例:
select * from tneticket a where DATE_FORMAT(DTRTIME,'yyyy-mm-dd hh:mi')>'2018-04-04 10:00';

select * from exception_msg a where a.STS='F' and date(a.APPL_DATE)='2018-04-04' and a.ERR_MSG like 'String index out of range: -1';
select * from uiq a where a.REL_OBJECT_ID='1804040398736999';
select * from uiq a where /*a.REL_OBJECT_ID='1804040398736999' and*/ a.REQ_DATA like '%<Operara>000000000000000</Operara>%';
select count(1) from exception_msg s where s.APPL_DATE> timestamp(now(), '-00:30:00') and s.sts='F';

select DATE_FORMAT(a.DTRTIME,'%Y-%m-%d %H:%i'),a.* from tneticket a where DATE_FORMAT(DTRTIME,'%Y-%m-%d %H:%i:%S')>'2018-04-04 10:00:00' and DATE_FORMAT(DTRTIME,'%Y-%m-%d %H:%i:%S')<='2018-04-04 15:00:00' ;
巡检号码:'13141101344','15611088088'

猜你喜欢

转载自www.cnblogs.com/wzh313/p/9070777.html