как избежать миллисекундной части из локальной метки времени? - PullRequest
0 голосов
/ 22 февраля 2012

выбор локальной временной метки из двойного;

Приведенный выше запрос показывает результат в формате 22-ФЕВ-12 04.27.02.225354000 PM в этом формате.

Как написать запрос для получения 22-ФЕВ-12 04.27.02 PM

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Либо:

select current_date from dual;

Или:

select to_char(localtimestamp,'dd-MON-yyyy hh.mi.ss AM') from dual;  

Хотя ни один из них не возвращает формат timestamp.

0 голосов
/ 22 февраля 2012

Если результат должен быть TIMESTAMP, есть несколько вариантов.Попробуйте выполнить следующее:

SELECT LOCALTIMESTAMP,
       CAST(LOCALTIMESTAMP AS TIMESTAMP(0)) AS CAST_TIMESTAMP0,
       CURRENT_DATE,
       CAST(CURRENT_DATE AS TIMESTAMP) AS DATE_CAST_TO_TIMESTAMP,
       TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS CHAR_TIMESTAMP,
       CAST(TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS TIMESTAMP(0)) AS TRUCATED_TIMESTAMP
  FROM DUAL

Обратите внимание, что значения CAST_TIMESTAMP0, CURRENT_DATE и DATE_CAST_TO_TIMESTAMP округляются до ближайшей секунды, а не усечены - перезапускайте запрос до тех пор, пока дробная часть LOCALTIMESTAMP не станет между 0,5 и 1,0чтобы увидеть это.Если округлые значения являются приемлемыми для вашего использования, вы можете пойти.Если нет, вам может понадобиться использовать две последние версии для преобразования метки времени в символьную строку и обратно.

Обратите также внимание, что приведенное выше значение CHAR_TIMESTAMP по-прежнему имеет количество дробных цифр по умолчанию, но все они равны нулю.Если вы не хотите этого, вам нужно использовать значение TRUNCATED_TIMESTAMP.

Поделиться и наслаждаться.

0 голосов
/ 22 февраля 2012

Попробуйте это:

SELECT TO_CHAR(dateColumn, 'YYYY-MM-DD HH12.MI.SS PM')

Проверьте документацию для получения дополнительной информации о функции TO_CHAR, а также о поддерживаемых форматах:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm#i1009324

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm

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