本文介绍GBaase 8a数据库集群内置的从字符串转日期的函数to_date语法和使用例子,大部分兼容Oracle语法。
目录导航
语法
TO_DATE(string,format)
说明
将字符串 string 格式化成 format 类型的日期。
参数
如下是支持的参数列表,只兼容部分Oracle的参数。
模板 | 描述 |
---|---|
/-:. | 分隔符,输出的年月日都是- |
HH | 一天的小时数 (01-12) |
HH12 | 一天的小时数 (01-12) |
HH24 | 一天的小时数 (00-23) |
MI | 分钟 (00-59) |
SS | 秒 (00-59) |
AM or A.M. or PM or P.M. | 正午标识,都是大写 |
YYYY | 年(4和更多位) |
YY | 年的后两位 |
MM | 月份 (01-12) |
DDD | 一年里的日子(001-366) |
DD | 一个月里的日子(01-31) |
FF[n] | 毫秒,默认是6位精度,1<=n<=9 |
样例
常用的中文格式:YYYY-MM-DD HH24:MI:SS
gbase> select to_date('2021-02-04 11:15:16','YYYY-MM-DD HH24:MI:SS') d;
+---------------------+
| d |
+---------------------+
| 2021-02-04 11:15:16 |
+---------------------+
1 row in set (Elapsed: 00:00:00.00)
带毫秒:YYYY-MM-DD HH24:MI:SS.FF
gbase> select to_date('2021-02-04 11:15:16.987654321','YYYY-MM-DD HH24:MI:SS.FF') d;
+----------------------------+
| d |
+----------------------------+
| 2021-02-04 11:15:16.987654 |
+----------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select to_date('2021/02/04 11:15:16.987654321','YYYY/MM/DD HH24:MI:SS.FF') d;
+----------------------------+
| d |
+----------------------------+
| 2021-02-04 11:15:16.987654 |
+----------------------------+
1 row in set (Elapsed: 00:00:00.00)
斜杠分隔符
gbase> select to_date('2021/02/04 11:15:16.987654321','YYYY/MM/DD HH24:MI:SS.FF') d;
+----------------------------+
| d |
+----------------------------+
| 2021-02-04 11:15:16.987654 |
+----------------------------+
1 row in set (Elapsed: 00:00:00.00)
带AM/PM
小时必须用HH格式,且原始字符串必须带AM/PM字样。否则结果可能错误。
gbase> select to_date('2021-02-04 11:15:16 PM','YYYY-MM-DD HH:MI:SS PM') d;
+---------------------+
| d |
+---------------------+
| 2021-02-04 23:15:16 |
+---------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select to_date('2021-02-04 11:15:16 PM','YYYY-MM-DD HH:MI:SS AM') d;
+---------------------+
| d |
+---------------------+
| 2021-02-04 23:15:16 |
+---------------------+
1 row in set (Elapsed: 00:00:00.00)
2位的年份:YY
默认是当前的20XX年。
gbase> select to_date('21-02-04 11:15:16 PM','YY-MM-DD HH:MI:SS AM') d;
+---------------------+
| d |
+---------------------+
| 2021-02-04 23:15:16 |
+---------------------+
1 row in set (Elapsed: 00:00:00.00)
一年内的天数:DDD
gbase> select to_date(123,'DDD');
+--------------------+
| to_date(123,'DDD') |
+--------------------+
| 2021-05-03 |
+--------------------+
1 row in set (Elapsed: 00:00:00.00)
参考
相似功能
GBase 8a数据库函数str_to_date将文本按指定格式转化为日期