欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

DM Damon 数据库关于时间和日期功能的总结

最编程 2024-04-26 15:51:55
...

DM达梦数据库关于时间日期函数的总结

总结了几点常用的关于日期时间相关的一些函数的用法,有时候可以很方便的帮你解决些棘手问题

1. 查询当前日期

select TRUNC(SYSDATE) from dual;  

2. 查询前一天或N天

select TRUNC(SYSDATE - 1) from dual;  
select TRUNC(SYSDATE - n) from dual;  

3. 查询本周周一

SELECT  trunc(sysdate,'iw') FROM dual;
SELECT  trunc(sysdate,'w') FROM dual;

4. 查询当前日期是当年第几天

select to_char(sysdate,'ddd') from dual;

5. 查询本年年初

select  trunc(sysdate,'yyyy') from dual;
select trunc(sysdate,'year') from dual;

6. 查询本周是当年的第几周

select  to_char(sysdate,'iw')   from  dual;

7. 查询几年前日期

select to_char(trunc((sysdate - interval '3' year ),'year'),'yyyy-mm-dd') from dual; --3年前11select trunc((sysdate - interval '3' year ),'yyyy') from dual; --3年前11日
SELECT add_months(SYSDATE, -3) FROM dual; --3月前的今天
select ADD_MONTHS(trunc(sysdate,'yyyy') ,-12) from dual ; --去年第一天
select ADD_MONTHS(sysdate,-12)  from dual; --去年的今天

关于w、ww、iw的用法和区别:

ww:按每年的1月1日为第一周第一天,1月8日为第二周第一天
w:与ww功能类似,不过它是按每月的1日为每周第一天,例如1日为当月第一周第一天,8日为第二周第一天
iw:自然周,为星期一至星期日算一周,且每年的第一个星期一为第一周

select to_char(sysdate,‘ww’) from dual; – 查询今年第几周,每天第一天为第一周第一天
select to_char(sysdate,‘iw’) from dual; – 查询今年第几周,自然周
select to_char(sysdate,‘w’) from dual; --查询本月第几周
select trunc(日期,‘d’) from dual; --意周日为一周起始日期 查询当周第一天
select trunc(日期,‘iw’) from dual;–意周日为一周结束日期 查询当周第一天