如何根据某天:testDay(格式2008-07-08)
计算出:
本周(testDay所在的周)的周一(this_week_beg)和周末(this_week_end),
上周的周一(last_week_beg)和周末(last_week_end ),
上上周的周一(two_week_beg)和周末( two_week_end),
上上上周的周一(three_week_beg)和周末(three_week_end),
本月开始(this_month_beg)和结束( this_month_end),
上月开始(last_month_beg)和结束(last_month_end).
谢谢了….
testday-6 ?
to_char(testday,'day') 是取该日是一周的第几天
周日是第一天,周一是第2天,周六是第7天
我们一般的习惯是以周日为最后天的,和数据库有所不同啊
我们这的本周日,在数据库里是下一周的开始(西方的习惯)
我不明白"decode(to_char(testday,'day'),'1',testday-6,testday-to_number(to_char(testday,'day'))+1)"
==>"decode(to_char(2008-07-08,'day'),'1',2008-07-08-6,2008-07-08-to_number(to_char(testday,'day'))+1)"?
应该是decode(to_char(testday,'day'),'1',testday-6,testday-to_number(to_char(testday,'day'))+2)"
这句话的意思
判断
to_char(testday,'day') 的值
如果是1,说明testday是周日,那取周一就是testday减去6天
不是的话,就取testday-to_char(testday,'day') 的值再加2天就是周一
比如8.25是周一
to_char(testday,'day')=2
8.25-2+2=8.25
如果是8.26
就是8.26-3+2=8.25
今天是
8.27
to_char(8.27,'day')=4
8.27-4+2=8.25
8.24是周日,如果还按这个公式算
8.24-1+2=8.25
按我们的习惯8.24不是本周的,算上周的,所以这时就要换个公式
8.24-6=8.18 就是上周一
非常感谢…..
分享到:
相关推荐
在Oracle数据库中,日期操作是常见的SQL查询任务,特别是在处理历史数据或进行时间相关的分析时。Oracle提供了丰富的函数来帮助用户对日期进行加减操作,这些功能强大且灵活的函数使得开发者能更精确地处理时间数据...
Oracle 日期函数是 Oracle 数据库中的一组功能强大且广泛使用的函数,它们可以对日期进行各种操作和计算,本次练习涵盖了 Oracle 中常用的日期函数,包括获取当前系统时间、对日期的月进行加减、获取给定日期所在月...
Oracle数据库在日期处理方面提供了丰富的函数和操作方式,使得对日期和时间的管理变得非常灵活。以下是对标题和描述中提到的知识点的详细说明: 1. **日期和字符转换**: - `to_date` 函数用于将字符型数据转换为...
当我们需要将日期转换为农历时,实际上是在处理日期的计算逻辑,因为农历与阳历的转换涉及到复杂的天文算法。 要实现这个功能,我们可以创建一个自定义的PL/SQL函数,如下所示: ```sql CREATE OR REPLACE ...
Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...
### Oracle 日期操作详解 #### 一、日期时间间隔操作 在Oracle数据库中,我们可以方便地执行日期时间的间隔操作,比如对当前时间进行增减指定的时间间隔。 **1. 当前时间减去7分钟的时间** ```sql SELECT SYSDATE...
在 Oracle 中,我们需要注意日期格式的冲突问题。例如: `ALTER SYSTEM SET NLS_DATE_LANGUAGE = 'AMERICAN';` 这条语句将日期语言设置为美国英语,从而避免日期格式的冲突问题。 Oracle 中日期处理是一个非常...
Oracle 时间日期操作是 Oracle 数据库中的一种常用的操作类型,它可以对数据库中的日期和时间进行各种处理和计算。以下是 Oracle 时间日期操作的一些常见知识点: 1. 获取当前日期和时间:使用 `sysdate` 函数可以...
以下是对Oracle日期处理的一些关键知识点的详细说明: 1. **将时间字符串转换为时间** Oracle提供了`to_date()`函数将字符串转换为日期类型。这个函数需要两个参数:要转换的字符串和匹配的转换格式。例如,`to_...
### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。
通过学习和掌握以上Oracle日期函数,你可以轻松地进行日期和时间的计算、比较和格式化,提升数据库操作的效率。同时,了解如何处理时区问题也是非常重要的,特别是在分布式系统中。希望这些知识对你在处理Oracle...
Oracle数据库本身并不内置农历日期转换的功能,但通过创建自定义函数和使用特定的算法,可以实现从农历到阳历的转换。以下是一个基于给定文件中的方法来解决这个问题的详细步骤: 1. 创建年份编码表 首先,我们需要...
以下是一些关键的Oracle日期处理函数和SQL语句的详细说明: 1. **TO_DATE函数**:用于将字符串转换为日期。例如,`TO_DATE('2022-04-05', 'YYYY-MM-DD')`将字符串'2022-04-05'转换为日期。日期格式必须与提供的模式...
Oracle 日期和时间处理函数提供了多种方式来处理日期和时间,包括日期和字符转换、日期语言设置、日期间的天数、时间为空的用法、日期范围查询、日期格式冲突问题、计算日期间的天数和计算月份之间的天数等。
日期格式冲突问题是由于安装的 Oracle 字符集类型引起的。例如,如果安装的 Oracle 字符集类型是 US7ASCII,那么日期格式就是 '01-Jan-01'。可以使用 ALTER SYSTEM 或 ALTER SESSION 语句来改变日期语言。例如: ```...
4. **`MONTHS_BETWEEN(date1, date2)`**:计算两个日期之间的月份数。例如: ```sql SELECT MONTHS_BETWEEN(TO_DATE('2022-01-01', 'YYYY-MM-DD'), TO_DATE('2021-12-01', 'YYYY-MM-DD')) FROM DUAL; ``` ####...
Oracle日期函数大全 Oracle日期函数大全是Oracle数据库中处理日期和时间的函数大全,包括TO_DATE、TO_CHAR等函数。这些函数可以对日期和时间进行各种操作,例如将日期转换为字符串、获取当前日期和时间、计算两个...