说说 Oracle 的时间格式化参数以及在 TO_CHAR() 与 TO_DATE() 中的应用
程序员文章站
2022-04-21 14:59:19
...
Oracle 提供了一系列的时间格式化参数,用于对时间进行格式化处理。下面首先介绍那些常用的时间格式化参数。
1 时间格式化参数
跨度 | 参数 | 说明 | 示例 |
---|---|---|---|
世纪 | CC | 第几世纪,格式为两位。 | 21 |
年份 | YYYY | 4 位年份。 | 2020 |
年份 | Y,YYY | 4 位年份,第 1 位之后,加逗号。 | 2,020 |
年份 | YYY | 年份后三位。 | 020,完整年份为 2020。 |
年份 | YY | 年份后两位。 | 20,完整年份为 2020。 |
年份 | Y | 年份最后一位。 | 0,完整年份为 2020。 |
年份 | YEAR | 年份英文表示形式,全大写。 | TWENTY NINETEEN,入参为 2019。 |
年份 | Year | 年份英文表示形式,首字母大写。 | Twenty Nineteen,入参为 2019。 |
季度 | Q | 第几季度,格式为一位。 | 3 |
月份 | MM | 两位月份。 | 12 |
月份 | MONTH 或 Month 或 Mon | 字符表示的月份 | 12月,因为中文没有区分大小写以及月份缩写,所以这些参数在中文中所表示的值是相同的。 |
月份 | RM | 罗马数字表示的月份。 | XII,入参为 12 月份。 |
周 | WW | 本年第几周。 | 52 |
周 | W | 本月第几周。 | 3 |
日 | DD | 本月第几天。 | 25 |
日 | D | 本周第几天。 | 6 |
日 | DAY 或 Day 或 DY 或 Dy | 周几的文字表述。 | 星期五 |
日 | J | 从公元前 4713 年 1 月 1 日至今,已经经过多少天。 | 2458850 |
小时 | HH24 | 24 小时制中的小时,两位。 | 22 |
小时 | HH | 12 小时制中的小时,两位。 | 10 |
分钟 | MI | 分钟,两位。 | 51 |
秒 | SS | 秒数,两位。 | 39 |
秒 | SSSSS | 从凌晨零点开始,所经过的秒数。 | 42699 |
后缀 | AM 或 A.M. 或 PM 或 P.M. | 依据入参,输出“上午” 或“下午”。 | 上午 |
后缀 | AD 或 A.D. 或 BC 或 B.C. | 依据入参,输出“公元” 或“公元前” | 公元 |
后缀 | TH | 为日期加上英文后缀,需要配合 DD,形如 DDTH | 27TH |
后缀 | SP | 日期显示为英文拼写形式,需要配合 SP,形如 SPTH | TWENTY-SEVEN |
2 TO_CHAR 函数
语法为:TO_CHAR(x[,format])。它可以将时间值转换为字符串。format 就是时间格式化参数。
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
运行结果:
2019-12-30 14:36:22
3 TO_DATE 函数
语法为:TO_DATE (x[,format])。它可以将字符串转换为 Date 类型的值。如果没有指定 format 参数,那么会使用默认的数据库格式。
select to_date('2020-10-10 23:13:03','YYYY-MM-DD HH24:MI:SS') from dual;
运行结果:
2020-10-10 23:13:03
4 组合使用 TO_CHAR 函数与 TO_DATE 函数
组合它们,可以把一种时间格式的字符串,转换为另一种格式。比如下面的示例:
select to_char(to_date('2020-10-10','YYYY-MM-DD'),'YYYY.MM.DD') from dual;
运行结果:
2020.10.10
也可以只显示字符串中的部分时间内容:
select to_char(to_date('2020-10-10','YYYY-MM-DD'),'MM-DD') from dual;
运行结果:
10-10
上一篇: 解决国内访问GitHub慢的问题
下一篇: 完美解决github访问慢的问题