Maison base de données tutoriel mysql Oracle基础教程:单行函数—日期类型函数

Oracle基础教程:单行函数—日期类型函数

Jun 07, 2016 pm 05:11 PM

因为round不能处理字符型数据,所以报错,我们要将字符型数据转换为日期型 idlegt; select round(to_date(

日期函数的处理
如果你对当前系统的日期格式 看这不舒服 可以修改当前会话的显示格式
idle> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';

Session altered.

idle> select sysdate from dual;

SYSDATE
-------------------
2010-12-17 08:52:31

idle>  这是OS系统时间 数据库本身没时间 只有SCN号
日期可以直接参与运算
idle> select sysdate-10 from dual;

SYSDATE-10
-------------------
2010-12-07 08:53:16

两个日期型数据相减会得到相差的天数
idle> select to_date('2010-12-30')-sysdate from dual;

TO_DATE('2010-12-30')-SYSDATE
-----------------------------
     12.6290856

idle>
可以将日期型的数据和一个小时数相加减 这个数要除以24
idle> select sysdate from dual;

SYSDATE
-------------------
2010-12-17 08:55:56

idle> select sysdate + 5/24 from dual;

SYSDATE+5/24
-------------------
2010-12-17 13:55:56

idle>

计算scott的工龄
idle> select ename,(sysdate-hiredate)/365 "years" from emp where ename='SCOTT';

ENAME  years
---------- ----------
SCOTT    23.6804732

idle>

日期型函数
 MONTHS_BETWEEN
 ADD_MONTHS
 NEXT_DAY
 LAST_DAY
 ROUND 和 TRUNC 对日期的取舍

MONTHS_BEWTEEN(日期1,日期2)
如果日期1大于日期2返回正数,日期1小于日期2返回负数
idle> select months_between('2010-10-10','2010-12-10') from dual;

MONTHS_BETWEEN('2010-10-10','2010-12-10')
-----------------------------------------
           -2

idle> select months_between('2010-12-10','2010-10-10') from dual;

MONTHS_BETWEEN('2010-12-10','2010-10-10')
-----------------------------------------
     2

idle>

ADD_MONTHS(日期,n)
把n个月加到日期上
idle> select add_months('2010-10-10',3) from dual;

ADD_MONTHS('2010-10
-------------------
2011-01-10 00:00:00

idle>

NEXT_DAY(日期,星期)
从当天算起,求下一个指定星期几是几号. 如果是中文系统将MONDAY改成"星期一"
idle> select next_day(sysdate,'MONDAY') from dual;

NEXT_DAY(SYSDATE,'M
-------------------
2010-12-20 09:02:06

idle>
idle> select next_day(sysdate,'fri') from dual;

NEXT_DAY(SYSDATE,'F
-------------------
2010-12-24 09:02:44

idle>

LAST_DAY(日期)
返回该日期的所在月的最后一天

idle> select last_day(sysdate) from dual;

LAST_DAY(SYSDATE)
-------------------
2010-12-31 09:03:26

idle>

idle> alter session set nls_date_format='YYYY-MM-DD';

Session altered.
idle> select ename,hiredate,last_day(hiredate),next_day(hiredate,'SUN'),months_between(sysdate,hiredate) "MON",ADD_MONTHS(hiredate,3) from emp
where ename='SCOTT';

ENAME    HIREDATE   LAST_DAY(H NEXT_DAY(H    MON ADD_MONTHS
---------- ---------- ---------- ---------- ---------- ----------
SCOTT    1987-04-19 1987-04-30 1987-04-26 283.947709 1987-07-19

idle>


ROUND(date,'[day|month|year]') 和 trunc(date,'[day|month|year]') 应用于日期型数据
数字的进位和截取是以小数点为中心,而日期的进位和截取是以年月日时分秒为中心

idle> select round('2010-10-10','MONTH') from dual;
select round('2010-10-10','MONTH') from dual
             *
ERROR at line 1:
ORA-01722: invalid number

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Réduisez l'utilisation de la mémoire MySQL dans Docker Réduisez l'utilisation de la mémoire MySQL dans Docker Mar 04, 2025 pm 03:52 PM

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Mar 19, 2025 pm 03:51 PM

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Mar 04, 2025 pm 04:01 PM

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Qu'est-ce que Sqlite? Aperçu complet Qu'est-ce que Sqlite? Aperçu complet Mar 04, 2025 pm 03:55 PM

Qu'est-ce que Sqlite? Aperçu complet

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Mar 04, 2025 pm 03:54 PM

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Mar 04, 2025 pm 03:49 PM

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Mar 18, 2025 pm 12:00 PM

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Mar 18, 2025 pm 12:01 PM

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?

See all articles