mysql Oracle常用时间处理
DATE_ADD(date,INTERVAL expr type)
date参数是合法的日期表达式。expr参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
例子:
OrderId
ProductName
OrderDate
1
'Computer'
2008-12-29 16:25:46.635
SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders
结果:
OrderId
OrderPayDate
1
2008-12-31 16:25:46.635
mysql>('04/31/2004','%m/%d/%Y');+---------------------------------------------------------+|('04/31/2004','%m/%d/%Y')|+---------------------------------------------------------+|2004-04-31|+---------------------------------------------------------+1inset(0.00)DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据
sdfsdf
DATE_FORMAT(date,format)实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:
Dec 29 2008 11:45 PM查询当前时间年月日时分秒
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
select now()
查询当前时间前三小时的时间点select subdate(now(),interval 3 hour);
查询当前时间前三天的时间点select subdate(now(),interval 3 day);
查新当前时间前三分钟的时间点 select subdate(now(),interval 3 minute);查询当前时间时分秒select current_time();查询当前时间年月日select current_date();获取本月最后一天select last_day(curdate());获取本月第一天select date_add(curdate(), interval - day(curdate()) + 1 day);
获取下个月第一天select date_add(curdate() - day(curdate()) + 1, interval 1 month);
获取本月天数select day(last_day(curdate()));
获取一个月前的今天【2018年的2月只有28天】select date_sub(curdate(), interval 1 month);
获取两个月前的今天select date_sub(curdate(), interval 2 month);
获取当前时间【当前月的第几天】select datediff(curdate(), date_sub(curdate(), interval 1 month));
补充Oracle 时间处理:select sysdate from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi') from dual;
select to_char(sysdate, 'yyyy' ) from dual; --年
select to_char(sysdate, 'MM' ) from dual; --月
select to_char(sysdate, 'dd' ) from dual; --日
select to_char(sysdate, 'Q') from dual; --季
select to_char(sysdate, 'iw') from dual; --周--按日历上的那种,每年有52或者53周
当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual;
当前时间减去7小时的时间
select sysdate - interval '7' hour from dual;
当前时间减去7天的时间
select sysdate - interval '7' day from dual;
当前时间减去7月的时间
select sysdate,sysdate - interval '7' month from dual;
当前时间减去7年的时间
select sysdate,sysdate - interval '7' year from dual;
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '7' hour from dual;
//获取当年的一月一号
to_date(concat((select to_char(sysdate,'yyyy') from dual), '-01-01 00:00:00'),'yyyy-MM-dd HH24:mi:ss') //date格式
//获取这个月的一月一号
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1 FROM DUAL; //date格式
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1,'yyyy-mm-dd HH24:mi:ss') FROM DUAL; //char格式
我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。 我要做一个自由又自律的人,靠势必实现的决心认真地活着。
版权声明
本文仅代表作者观点,不代表博信信息网立场。