我正在尝试使用以下代码删除日期中的小时,分钟和秒:
TRUNC(column_date, 'YY')
但我得到了这个:01JAN2008:00:00:00
,虽然我想要这个:01JAN2008
。
我该怎么办?
TRUNC()
按预期工作,并将截断为year的原始日期作为日期数据类型返回。您希望在显示之前格式化此日期(这实际上意味着将其转换为字符串)。为此,您可以使用TO_CHAR()
函数。
你可能想要:
TO_CHAR(TRUNC(column_date, 'YY'), 'ddmonyyyy')
请注意,可以简化此表达式以避免使用TRUNC()
,如下所示:
'01JAN' || TO_CHAR(column_date, 'yyyy')
我想你想要to_char
:https://docs.oracle.com/database/121/SQLRF/functions216.htm#SQLRF06129
尝试以这种方式使用它:
SELECT TO_CHAR(column_date, 'DD/MON/YYYY')
FROM x;
其中x是您要查询的表。
你只需要使用
select to_char(column_date,'ddMONyyyy') FROM yourTable
即使你可以调用
select to_char(column_date,'ddMONyyyy','nls_date_language=english') FROM yourTable
保证在你的JAN
/ session
日期语言值不同于system
的情况下看到缩写english
按预期显示。