Устранить часы, минуты и секунды с даты в SQL ORACLE - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь удалить часы, минуты и секунды из даты, используя следующий код:

TRUNC(column_date, 'YY')

Но я получаю это: 01JAN2008:00:00:00, пока я хочу это: 01JAN2008.

Что мне делать?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

TRUNC() работает должным образом и возвращает исходную дату, усеченную до года, в виде типа данных .Вы хотите отформатировать эту дату перед ее отображением (на самом деле это означает преобразование ее в строку).Для этого вы можете использовать функцию TO_CHAR().

Возможно, вы захотите:

 TO_CHAR(TRUNC(column_date, 'YY'), 'ddmonyyyy')

Обратите внимание, что это выражение можно упростить, чтобы избежать использования TRUNC() следующим образом:

 '01JAN' || TO_CHAR(column_date, 'yyyy')
0 голосов
/ 28 февраля 2019

вам нужно использовать только

select to_char(column_date,'ddMONyyyy') FROM yourTable

Даже вы можете вызвать с помощью

select to_char(column_date,'ddMONyyyy','nls_date_language=english') FROM yourTable

, чтобы гарантировать, что вы увидите сокращение JAN в случае, если ваш session / system значение языка даты отличается от english

для отображения, как ожидается.

0 голосов
/ 28 февраля 2019

Я думаю, что вы хотите to_char: https://docs.oracle.com/database/121/SQLRF/functions216.htm#SQLRF06129

Попробуйте использовать его следующим образом:

SELECT TO_CHAR(column_date, 'DD/MON/YYYY')
FROM x;

Где x - таблица, которую вы пытаетесь запросить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...