0

伙计们。我有查询,它计算每天某些事件的数量。但它以错误的格式返回日期。

select trunc(action_dt) as action_dt, count(*) as cnt
from stat.jurnal_orders
where action_dt between TO_DATE('17.05.12','DD/MM/YY') AND TO_DATE('12.11.13','DD/MM/YY')
group by trunc(action_dt)
order by action_dt asc

在数据库中,我的日期在 DD.MM.YYYY 但我想要 YYYY/MM/DD 有人可以帮我查询吗?

4

4 回答 4

1

要将日期转换为不同的格式,您可以使用 Oracle TO_CHAR 函数。http://www.techonthenet.com/oracle/functions/to_char.php

对于您的示例,假设您想先 TRUNC 日期,您可以像这样使用它:

SELECT TO_CHAR(TRUNC(action_dt), 'YYYY/MM/DD') as action_dt
FROM some_table
于 2013-09-30T05:32:08.347 回答
1

you have two options

First - explicitly set the format you want in the query using TO_CHAR

select to_char(trunc(action_dt),'yyyy/mm/dd') as action_dt, count(*) as cnt
from stat.jurnal_orders
where action_dt between TO_DATE('17.05.12','DD/MM/YY') AND TO_DATE('12.11.13','DD/MM/YY')
group by to_char(trunc(action_dt),'yyyy/mm/dd')
order by action_dt asc

Second, set the nls_date_format at session level.

alter session set nls_date_format = 'yyyy/mm/dd';

and you query

select trunc(action_dt) as action_dt, count(*) as cnt
    from stat.jurnal_orders
    where action_dt between TO_DATE('2012/05/17') AND TO_DATE('2013/12/11')
    group by trunc(action_dt)
    order by action_dt asc
于 2013-09-30T05:27:02.067 回答
0

Please try TO_CHAR:

select TO_CHAR (sysdate, 'YYYY/MM/DD') from dual;
于 2013-09-30T05:26:32.370 回答
-1
SELECT REPLACE(CONVERT(VARCHAR(10), action_dt, 102), '.', '/')

http://msdn.microsoft.com/en-us/library/ms187928.aspx

编辑:这是针对 T-SQL 而不是 Oracle。误读了问题。

于 2013-09-30T05:30:49.553 回答