首页 > 解决方案 > 仅从oracle sql中的给定日期提取日期

问题描述

提取日期的最佳 Oracle sql 查询是什么?输入条目 - 2020-10-14T07:26:32.661Z ,预期输出 - 2020-10-14

标签: sqloracle

解决方案


如果您想要DATE时间分量为午夜的数据类型,则:

SELECT TRUNC(
         TO_TIMESTAMP_TZ(
           '2020-10-14T07:26:32.661Z', 
           'YYYY-MM-DD"T"HH24:MI:SS.FF3TZR'
         )
       ) AS truncated_date
FROM   DUAL;

哪个(取决于您的NLS_DATE_FORMAT)输出:

| 截断日期 |
| :----------------- |
| 2020-10-14 00:00:00 |

(注意:DATE数据类型有年、月、日、小时、分钟和秒部分。无论您使用什么客户端程序访问数据库,都可以选择不显示时间部分,但它仍然存在。)

如果你想要一个YYYY-MM-DD格式化的字符串,那么:

SELECT TO_CHAR(
         TO_TIMESTAMP_TZ(
           '2020-10-14T07:26:32.661Z', 
           'YYYY-MM-DD"T"HH24:MI:SS.FF3TZR'
         ),
         'YYYY-MM-DD'
       ) AS formatted_date
FROM   DUAL;
| FORMATTED_DATE |
| :------------- |
| 2020-10-14 |

db<>在这里摆弄


推荐阅读