Oracle
 sql >> база данни >  >> RDS >> Oracle

2 функции, които връщат секундите от стойност на дата и час в Oracle

По-долу са две функции, които могат да се използват за връщане на секундната част от стойност за дата и час в Oracle Database.

EXTRACT() Функция

EXTRACT(datetime) функцията се използва за извличане на различни части за дата и час от стойност на дата и час. Това включва частта от секундите.

Ето един пример:

SELECT 
    EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;

Резултат:

37

Това е SECOND ключова дума, която извлича частта от секундите от стойността за дата и час. Това ще включва всички частични секунди:

SELECT 
    EXTRACT(
        SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
        )
FROM DUAL;

Резултат:

37.123456789

Можем да получим други части за дата, като я променим на съответната ключова дума. Например YEAR , MONTH , HOUR , MINUTE и др.

Можем да използваме функцията и с други стойности за дата и час, като DATE .

TO_CHAR(datetime) Функция

Можем също да използваме TO_CHAR(datetime) функционира като алтернативен метод за получаване на компонента секунди от стойност за дата и час.

Тази функция приема стойността за дата и време или интервал като свой първи аргумент и модел на формат като втори аргумент. След това функцията преобразува стойността в тип данни VARCHAR2 в посочения формат.

Форматният модел определя формата, за който да се върне стойността за дата и време/интервал. Форматният модел се състои от един или повече елементи на формат. Това ни позволява внимателно да изработим резултатите, за да отразяват желания от нас формат.

Ако искаме да върнем само секундите, можем да използваме един от елементите на формат, които връщат този компонент.

Има няколко различни елемента на формат, които можем да използваме, когато връщаме компонента секунди от стойност за дата и час.

Най-очевидният е SS форматен елемент:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;

Резултат:

37

Както виждаме, SS Елементът format връща само секундната част, но не и частта от секундите.

Дробни секунди

Ако искаме да включим дробните секунди, можем да използваме FF форматен елемент. Можем също да използваме X за да посочите основния символ (символът, използван за разделяне на цялата част от дробната част):

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Резултат:

37.123456789

Възможно е също да се ограничи прецизността чрез добавяне на число към FF част:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;

Резултат:

37.12345

Числото може да бъде 1 до 9 .

Въпреки че бихте могли изрично да предоставите свой собствен основен знак – например точка (.) ), X Елементът format може да бъде полезен за пренасяне на различни езици/територии.

Когато стартирах горните примери, моят NLS_TERRITORY параметърът е зададен на AUSTRALIA , което доведе до символа за основа, който е точка.

Ето какво се случва, когато променя моята NLS_TERRITORY параметър към GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Резултат:

37,123456789

Сега символът за основа е запетая.

Секунди след полунощ

Можем да използваме SSSSS за да върнете секундите след полунощ:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;

Резултат:

00065

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да запишете BLOB като файл в PL/SQL?

  2. Каква е причината/полезността е да се използва ключова дума ENABLE в изразите на базата данни на Oracle

  3. Функция JSON_TABLE() в Oracle

  4. Определяне дали данните за полето в Oracle са от тип число

  5. Извикване на съхранена ПРОЦЕДУРА в Toad