在问这个问题之前做了很多搜索,例如如何将字符串转换为日期格式,如何将字符串转换为日期,但仍然无法弄清楚。
所以,这是一个问题,如何将这些字符串日期转换为日期Oracle
:
“ 2016-08-15 10:45:30”(字符串类型)-> 20160815(日期类型)
“ 20160815104530”(字符串类型)-> 20160815(日期类型)
任何想法将不胜感激。
您在这里混合了两件事:
首先是将Oracle中的String数据类型VARCHAR2
转换为DATE
数据类型。该DATE
数据类型精确到秒级,你不能改变的。一个DATE
数据类型将永远给你的日期及时间分量,即年,月,日,小时,分钟和秒:甲骨文的SQL数据类型文档
但是,您要询问的第二部分是有关如何在检索时格式化日期。在运行报告或日期的其他可视显示方式时,这很有用。例如,在美国,您很可能希望日期列以该格式显示,MM/DD/YYYY
而在世界上其他任何地方,您都希望使用DD/MM/YYYY
。Oracle通过告诉NLS_DATE_FORMAT
您要使用的内容来使您做到这一点。您可以为每个单独的会话以及在数据库级别上设置该参数,这取决于您(和您的DBA)决定在哪里以及何时进行设置。在您的情况下,可以通过以下ALTER SESSION
命令应用此命令:
SQL> ALTER SESSION SET nls_date_format='YYYY-MM-DD';
Session altered.
SQL> SELECT TO_DATE('2016-08-15 10:45:30', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
TO_DATE(
----------
2016-08-15
SQL> SELECT TO_DATE('20160815104530', 'YYYYMMDDHH24MISS') FROM DUAL;
TO_DATE(
----------
2016-08-15
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句