本文介绍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)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




