以时间2007-11-0213:45:25为例
日期字段 | 格式 | 英文 | 解释 | 显示值 |
Year | yy | twodigits | 两位年 | 07 |
yyy | threedigits | 三位年 | 007 | |
yyyy | fourdigits | 四位年 | 2007 | |
Month | mm | number | 两位月 | 11 |
mon | abbreviated | 字符集表示 | 11月(nov) | |
month | spelledout | 字符集表示 | 11月(november) | |
Day | dd | number | 当月第几天 | 02 |
ddd | number | 当年第几天 | 02 | |
dy | abbreviated | 当周第几天简写 | 星期五(fri) | |
day | spelledout | 当周第几天全写 | 星期五(friday) | |
Hour | hh | twodigits | 12小时制 | 01 |
hh24 | twodigits | 24小时制 | 13 | |
Minute | mi | twodigits | 60进制 | 45 |
Second | ss | twodigits | 60进制 | 25 |
Others | Q | digit | 季度 | 4 |
WW | digit | 当年第几周 | 44 | |
W | digit | 当月第几周 | 1 |
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual;
年:
YY :两位年 16
YYY :三位年 016
YYYY :四位年 2016
季度
Q :返回季度
月份
MM :
MON :
MONTH:
周
WW :
W :
天
DD :
DDD :
DY :
DAY :
小时
HH:
HH24 :
分
MI :
秒
SS:
1.获取当前系统日期
--返回当前系统日期 SELECT SYSDATE FROM DUAL;
2.返回系统日期的年份
- 两位年
SELECT TO_CHAR(SYSDATE,'YY') FROM DUAL;
- 三位年
select TO_CHAR(SYSDATE,'YYY')FROM DUAL;
- 四位年
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
3.返回季度
SELECT TO_CHAR(SYSDATE,'Q') FROM DUAL;
4.返回日期的月份
月份数字 :
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
月份英文缩写:
SELECT TO_CHAR(SYSDATE,'MON') FROM DUAL;
月份全英文:
SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL;
5.返回周
当年第几周
SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;
当月第几周
SELECT TO_CHAR(SYSDATE,'W') FROM DUAL;
6.返回日期的天数
当月第几天
SELECT TO_CHAR(SYSDATE,'DD') FROMDUAL;
当年第几天
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
本周星期几缩写
SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL;
本周星期几全称
SELECT TO_CHAR(SYSDATE,'DAY') FROM DUAL;
7.返回小时
十二: SELECT TO_CHAR(SYSDATE,'HH') FROMDUAL; 二十四:SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
返回时间的分
SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;
8.返回秒
SELECT TO_CHAR(SYSDATE,'SS') FROMDUAL;
/********************************华丽的分割线************************************/
1.获取当前月份的第一天
SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL;
2.获取当前月份的最后一天
SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL;
3.获取当前年份的第一天
SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL;
4.获取当前年份的最后一天
SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL;
5.获取当前月份的天数
SELECT CAST(TO_CHAR(LAST_DAY(SYSDATE),'DD') AS INT) FROM DUAL;
6.获取当前月份剩下的天数
SELECT SYSDATE , LAST_DAY(SYSDATE) ,LAST_DAY(SYSDATE)-SYSDATE FROM DUAL;
7.获取两个日期之间的天数
SELECT ROUND(SYSDATE - TRUNC(SYSDATE,'YEAR')) FROM DUAL;
8.获取直到目前为止今天过去的秒数
SELECT (SYSDATE - TRUNC (SYSDATE)) * 24 * 60 * 60num_of_sec_since_morning FROM DUAL;
9.获取今天剩下的秒数
SELECT (TRUNC (SYSDATE+1) - SYSDATE) * 24 * 60 * 60num_of_sec_left FROM DUAL;
10.获取两个日期的月份差
select months_between(trunc(to_date('2010-03-02','yyyy-mm-dd'),'mm') , trunc(to_date('2010-02-10','yyyy-mm-dd'),'mm')) from dual;
11.获取两个日期的天数差
select to_date('2010-03-02','yyyy-mm-dd')-to_date('2010-02-10','yyyy-mm-dd') from dual;
12.获取两个日期的年份差
select months_between(to_date('2010-03-01','yyyy-mm-dd') , to_date('2007-03-01','yyyy-mm-dd'))/12 from dual;
/********************************************/
1.生成随机数
SELECT ROUND (DBMS_RANDOM.VALUE () * 100) + 1 AS random_num FROM DUAL;