论坛首页 综合技术论坛

oracle用中国人的习惯(周一到周日)算日期的问题。

浏览 7749 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-27  
做项目需要计算当日的本周一日期,
查到了一个函数写法如下
select trunc(sysdate,'day')+1 from dual 

但是在测试
select trunc(to_date('2011-3-20', 'yyyy-MM-dd hh24:mi:ss'),'day')+1 as 周一日期 from dual 

的时候返回的是
  周一日期
  2011/3/21
于是在date参数后面-1
select trunc(to_date('2011-3-20', 'yyyy-MM-dd hh24:mi:ss')-1,'day')+1 as 周一日期 from dual 

返回的是
  周一日期
  2011/3/14
   发表时间:2011-12-30  
select trunc(next_day(sysdate-8,1)+1)  as 周一 from dual;
0 请登录后投票
   发表时间:2012-01-05  
不解
sysdate的第一天为周日
to_date产生的date第一天为周一
0 请登录后投票
   发表时间:2012-01-10  
1.select trunc(to_date('2011-3-20', 'yyyy-MM-dd hh24:mi:ss')-1,'day')+1 as 周一日期 from dual 
date函数的已经少一天了,而trunc函数算的当然的你传的那个日期,2011-3-19的所在的本周一日期了,所以出现3-14
0 请登录后投票
   发表时间:2012-01-10  
cry615 写道
1.select trunc(to_date('2011-3-20', 'yyyy-MM-dd hh24:mi:ss')-1,'day')+1 as 周一日期 from dual 
date函数的已经少一天了,而trunc函数算的当然的你传的那个日期,2011-3-19的所在的本周一日期了,所以出现3-14



你说的 我都知道,但是我不知道你想表达什么
0 请登录后投票
   发表时间:2012-01-11  
上次看了下日期函数,对创建日期类的东东,是很方便
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics