日期函数

-- 列举了不同数据库的日期操作
-- oracle
select SYSTIMESTAMP,sysdate,Current_date  from dual; -- 当前时间
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; -- 格式化
select sysdate+1/24;
select trunc(sysdate,'MI') from dual; -- 分钟截断
select sysdate-trunc(sysdate,dd);
select extract(year from sysdate) from dual; -- 提取
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1,
	to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss:ff6') time2,to_char(current_timestamp) time2 from dual;--毫秒时间
 select to_char(to_date('2017-01-01','yyyy-mm-dd'),'day')
        ,to_char(to_date('2017-01-01','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;  -- 星期 
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual -- 一年当中第几天
select sysdate,next_day(sysdate,1) from dual-- next_day函数,返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
select sysdate,last_day(sysdate) from dual -- 月份最后一天,注意只是到天
select sysdate,add_months(last_day(sysdate),1) from dual-- 月份增减函数

-- sqlserver

select convert(varchar(100),getdate(),23) ; -- 年月日
select convert(varchar(100),getdate(),108) ; -- 时分秒
select convert(varchar(100),getdate(),120),CONVERT(varchar(100), GETDATE(), 121) ; -- 年月日时分秒,和带毫秒的
select dateadd(HH,-1,getdate()); -- 天用DD,分钟用MI,月用MM
select datediff(hour,getdate(),dateadd(HH,1,getdate())); -- 两个时间相差小时,天用day
select year(getdate());   select Datename(hour,getdate()); select datename(year,getdate())
SELECT DATEPART(yyyy,getdate()),DATEPART(mm,getdate()),DATEPART(dd,getdate()); -- 跟oracle的extract类似

-- mysql
SELECT CURRENT_DATE,CURRENT_TIME(),NOW(),SYSDATE(),CURRENT_TIMESTAMP
	,MICROSECOND('2017-12-31 23:59:59.000010'),DATE_FORMAT('2017-12-31 23:59:59.000010', '%f')
	,DATE_FORMAT('2017-12-31 23:59:59.000010','%Y-%m-%d %H:%i:%s:%f')
	,DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s:%f')
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),; -- 格式化时间日期
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY); -- 小时用hour,分钟用minute
SELECT TIMESTAMPDIFF(MINUTE,NOW(),DATE_ADD(NOW(),INTERVAL 1 MINUTE));
SELECT EXTRACT(YEAR FROM NOW()),YEAR(NOW()); -- extract类似oracle
-- 上个月的第一天: -- 其中DATE_SUB表名减去指定天或小时
SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY),INTERVAL 1 MONTH);
-- 上个月的最后一天:
SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) DAY),INTERVAL 0 MONTH);
-- 这个月的第一天:
SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) - 1 DAY),INTERVAL 0 MONTH);
-- 这个月的最后一天:
SELECT DATE_SUB(DATE_SUB(DATE_FORMAT(NOW(), '%y-%m-%d'),INTERVAL EXTRACT(DAY FROM NOW()) DAY),INTERVAL -1 MONTH);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值