Table of Contents
基于年的运算:
基于季度的运算:
基于月的运算:
基于周的运算:
基于天的运算:
综述:
Home Database Mysql Tutorial Oracle日期运算,你知多少?

Oracle日期运算,你知多少?

Jun 07, 2016 pm 03:27 PM
oracle deal with How many daily date Operation

日常工作对日期处理不多,最近因为需要设计一个时间维表,借这个机会,整理下常用的日期处理运算方法。 Oracle提供了几个基本的日期处理函数 函数 描述 ADD_MONTHS(DATE,COUNT) 指定日期 date上增加 count个月 LAST_DAY(DATE) 返回日期 date所在月的最后一天

日常工作对日期处理不多,最近因为需要设计一个时间维表,借这个机会,整理下常用的日期处理运算方法。

Oracle提供了几个基本的日期处理函数

函数

描述

ADD_MONTHS(DATE,COUNT)

指定日期date上增加count个月

LAST_DAY(DATE)

返回日期date所在月的最后一天

MONTHS_BETWEEN(DATE1,DATE2)

返回相差多少个月

NEW_TIME(DATE,’THIS’,’OTHER’)

将时间从this时区转换到other时区

NEXT_DAY(DATE,’DAY’)

返回指定日期或之后的第一个星期几的日期,’day’为星期几,也可以为1-7的数字,1代表星期日,以此类推

SYSDATE

获取系统当前日期至

CURRENT_TIMESTAMP()

当前时间和日期值

示例代码:

select add_months(sysdate,2)                                 as "两个月后的日期",
  last_day(sysdate)                                          as "本月最后一天",
  months_between(sysdate, to_date('2012-12-20','yyyy-mm-dd'))as "月份差",
  new_time(sysdate,'CST','EST')                              as "北京时间转换为东部时间",
  next_day(sysdate,1)                                        as "下个周日的日期",
  sysdate                                                    as "当前系统时间"
from dual
Copy after login

返回结果:

两个月后的日期

8/27/2012 15:56

本月最后一天

6/30/2012 15:56

月份差

-5.752772177

北京时间转换为东部时间

6/27/2012 16:56

下个周日的日期

7/1/2012 15:56

当前系统时间

6/27/2012 15:56

 

事实上,往往令人头疼是那些基于时间单位的计算,如年(Year),季(Quarter),月(Month),周(Week),天(Day),时(Hour),分(Minute),秒(Second),毫秒(Millisecond)。(毫秒暂不讨论)

得到各单位的时间,我们通常有两种方法:

例:

TRUNC(SYSDATE,’MI’) 得到精确至‘分’的日期时间
TO_CHAR(SYSDATE,’MI’) 获取时间的‘分’的值

 

基于年的运算:

--得到一年的第一天
select trunc(sysdate,'y') from dual;
--得到一年的最后一天
select add_months(trunc(sysdate,'yyyy'),12) -1 from dual;
--得到一年的每一天
select trunc(sysdate,'yyyy') + rn -1 date0
 from (select rownum rn from all_objects where rownum 
<p><br>
</p>
<h2 id="基于季度的运算">基于季度的运算:</h2>
<p></p><pre class="brush:php;toolbar:false">--本季度第一天
select to_char(trunc(sysdate,'q'),'yyyy-mm-dd') from dual;
--本季度最后一天
select add_months(trunc(sysdate,'q'),3) -1 from dual;
--上个季度最后一天(可以用本季度第一天减去1得到)
select to_char(trunc(sysdate,'q') -1,'yyyy-mm-dd') from dual;
--上个季度第一天(本季度第一天减 3个月)
select to_char(add_months(trunc(sysdate,'q'), -3),'yyyy-mm-dd')
 from dual;
--上个季度第一天(本季度减一个月之后的月份的最后一天)
select to_char(last_day(add_months(trunc(sysdate,'q'), -1)),'yyyy-mm-dd')
 from dual;
Copy after login

基于月的运算:

--得到月份
select to_char(sysdate,'month') from dual;
--得到第几月
select to_char(sysdate,'mm') from dual;
--该月第一天
select trunc(sysdate,'mm') from dual;
--该月最后一天
select last_day(trunc(sysdate)) from dual;
--当前月份的第几天
select to_char(sysdate,'dd') from dual;
Copy after login

基于周的运算:

--一周的第一天
select to_char(sysdate,'d') from dual;
--得到星期几
select initcap(to_char(sysdate,'day')) from dual;
--取当前时间是一年中的第几周(按实际日历的)
select to_char(sysdate,'iw') from dual;
---取当前时间是一年中的第几周(从1.1开始算)
select to_char(sysdate,'ww') from dual;
--取当前时间是一个月中的第几周(从1日开始算)
select to_char(sysdate,'w') from dual;
--本周第一天(星期天算起)
selecttrunc(sysdate,'d') from dual;
--本周最后一天(星期天算起)
select trunc(sysdate,'d') +6 from dual;
Copy after login

基于天的运算:

--获取前一天的开始时间和结束时间
select to_char(to_date(to_char(sysdate - 1,'yyyy-mm-dd'),'yyyy-mm-dd'),
              'yyyy-mm-dd hh24:mi:ss')
 from dual;
 
select to_char(to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'),
              'yyyy-mm-dd hh24:mi:ss')
 from dual;
Copy after login

综述:

举例就到此为止了,多数的运算已经罗列出来,如有其他需求,可以尝试以上的方法来引申。

欢迎大家一起学习交流!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Function to calculate the number of days between two dates in oracle Function to calculate the number of days between two dates in oracle May 08, 2024 pm 07:45 PM

The function in Oracle to calculate the number of days between two dates is DATEDIFF(). The specific usage is as follows: Specify the time interval unit: interval (such as day, month, year) Specify two date values: date1 and date2DATEDIFF(interval, date1, date2) Return the difference in days

How long will Oracle database logs be kept? How long will Oracle database logs be kept? May 10, 2024 am 03:27 AM

The retention period of Oracle database logs depends on the log type and configuration, including: Redo logs: determined by the maximum size configured with the "LOG_ARCHIVE_DEST" parameter. Archived redo logs: Determined by the maximum size configured by the "DB_RECOVERY_FILE_DEST_SIZE" parameter. Online redo logs: not archived, lost when the database is restarted, and the retention period is consistent with the instance running time. Audit log: Configured by the "AUDIT_TRAIL" parameter, retained for 30 days by default.

The order of the oracle database startup steps is The order of the oracle database startup steps is May 10, 2024 am 01:48 AM

The Oracle database startup sequence is: 1. Check the preconditions; 2. Start the listener; 3. Start the database instance; 4. Wait for the database to open; 5. Connect to the database; 6. Verify the database status; 7. Enable the service (if necessary ); 8. Test the connection.

How to use interval in oracle How to use interval in oracle May 08, 2024 pm 07:54 PM

The INTERVAL data type in Oracle is used to represent time intervals. The syntax is INTERVAL <precision> <unit>. You can use addition, subtraction, multiplication and division operations to operate INTERVAL, which is suitable for scenarios such as storing time data and calculating date differences.

How to determine whether two strings are contained in oracle How to determine whether two strings are contained in oracle May 08, 2024 pm 07:00 PM

In Oracle, you can use the nested INSTR function to determine whether a string contains two substrings at the same time: when INSTR(string1, string2a) is greater than 0 and INSTR(string1, string2b) is greater than 0, it is included; otherwise, it is not included.

How to see the number of occurrences of a certain character in Oracle How to see the number of occurrences of a certain character in Oracle May 09, 2024 pm 09:33 PM

To find the number of occurrences of a character in Oracle, perform the following steps: Get the total length of a string; Get the length of the substring in which a character occurs; Count the number of occurrences of a character by subtracting the substring length from the total length.

Oracle database server hardware configuration requirements Oracle database server hardware configuration requirements May 10, 2024 am 04:00 AM

Oracle database server hardware configuration requirements: Processor: multi-core, with a main frequency of at least 2.5 GHz. For large databases, 32 cores or more are recommended. Memory: At least 8GB for small databases, 16-64GB for medium sizes, up to 512GB or more for large databases or heavy workloads. Storage: SSD or NVMe disks, RAID arrays for redundancy and performance. Network: High-speed network (10GbE or higher), dedicated network card, low-latency network. Others: Stable power supply, redundant components, compatible operating system and software, heat dissipation and cooling system.

How much memory does oracle require? How much memory does oracle require? May 10, 2024 am 04:12 AM

The amount of memory required by Oracle depends on database size, activity level, and required performance level: for storing data buffers, index buffers, executing SQL statements, and managing the data dictionary cache. The exact amount is affected by database size, activity level, and required performance level. Best practices include setting the appropriate SGA size, sizing SGA components, using AMM, and monitoring memory usage.

See all articles