获取当前时间
要想获取当前时间几天/分钟前的时间,首先要知道怎么获取当前时间;
对于MySQL和Oracle获取当前时间的方法是不一样的;
MySQL:
select NOW();
示例:
Oracle:
select sysdate from dual;
示例:
如果我们直接select sysdate在Oracle中是不显示小时、分钟和秒的,我们需要做时间格式转换,如下:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
当然,MySQL也有sysdate函数,不过需要带上(),如下:
获取偏移后的时间
对于获取当前时间偏移多少天前,或者多少分钟后的时间;MySQL给出了一个函数,这个函数可以用来获取偏移时间,函数名timestampadd();
第一个参数是:偏移的类型(分钟、小时、天)
第二个参数是:偏移多少(负数往前偏移,正数往后偏移)
第三个参数一般填当前时间。
示范:获取当前时间两小时之前的时间
select timestampadd(minute, -120 , sysdate());
获取当前时间三天之后的时间:
select timestampadd(day, +3 , now());
对于oracle获取偏移后的时间,我直接给出写法:
获取当前时间和当前时间五分钟之前的时间(显示小时、分钟、秒):
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate-interval '5' minute,'yyyy-mm-dd hh24:mi:ss') from dual;
获取当前时间和当前时间5小时之前的时间(显示小时):
select to_char(sysdate,'yyyy-mm-dd hh24'),to_char(sysdate-interval '5' hour,'yyyy-mm-dd hh24') from dual;
获取当前时间和当前时间5月后的时间(显示年月):
select to_char(sysdate,'yyyy-mm'),to_char(sysdate+interval '5' month,'yyyy-mm') from dual;
总结:MySQL可以通过timestampadd()函数去获取偏移后的时间,Oracle可以通过当前时间加减interval获取偏移后的时间。