将数字转换为日期sql oracle

时间:2015-07-14 11:53:08

标签: sql oracle date-formatting

我尝试将数字(mm/dd/yyyy)转换为日期(20150302 ====> 03/02/2015

例如

 Map<String, Object> beansWithAnnotation = applicationContext.getBeansWithAnnotation(Path.class);

    Collection<Object> values = beansWithAnnotation.values();
    for (Object next : values) {
            ResourceUtil.getResourceUrls(next);
    }


public static List<String> getResourceUrls(Object obj)
{
    Resource resource = Resource.from(obj.getClass());
    String uriPrefix = resource.getPath();
    List<String> urls = new ArrayList<>();
    for (Resource res :resource.getChildResources())
    {
        String uri = uriPrefix + res.getPath();
        urls.add(uri);
    }
    return urls;
}

5 个答案:

答案 0 :(得分:8)

你可以试试这个:

select to_date(20150302,'yyyymmdd') from dual;

select to_char(to_date(20150302,'yyyymmdd'),'mm/dd/yyyy') from dual;

答案 1 :(得分:1)

您可以使用 TO_DATE 功能将NUMBER转换为DATE。请尝试以下方法:

SELECT TO_DATE(20150302, 'YYYYMMDD') FROM DUAL

答案 2 :(得分:0)

TO_DATE 接受CHARVARCHAR2NCHARNVARCHAR2数据类型的字符,并转换为值 DATE < / strong>数据类型。

因此,将数字转换为字符串,并应用to_date。您可以在数字周围使用单引号将其转换为字符串

SELECT TO_DATE('20150302', 'YYYYMMDD')  FROM dual;

请记住,DATE没有格式,您看到的是用于显示目的。如果要以所需格式显示日期,请使用 TO_CHAR 以及所需的格式模型。

SELECT TO_CHAR(TO_DATE('20150302', 'YYYYMMDD'), 'mm/dd/yyyy') FROM dual;

详细了解TO_DATE

答案 3 :(得分:0)

要以所需的格式进行转换,

select to_char(to_date(20150302, 'YYYYDDMM'), 'mm/dd/yyyy')

答案 4 :(得分:0)

上面的答案仍然不正确。 当需要日期时,它返回一个字符串。 正确的做法是:

select to_date(to_char(20210416), 'YYYYMMDD') num_to_char_to_date from dual;