java System.currentTimeMillis()에 해당하는 Oracle?
Oracle 번호 필드에 현재 시간을 밀리초 단위로 저장할 수 있기를 원합니다.쿼리를 통해 이 작업을 수행하려면 어떻게 해야 합니까?
select systimestamp from dual;
실제 타임스탬프를 반환합니다.자바와 같은 방식으로 이것을 밀리초로 변환할 수 있는 방법이 있습니까?System.currentTimeMillis()
그래요?
Java 함수는 특정 시점 이후 경과한 시간(밀리초)을 반환합니다.이 시간은 1970년 UTC의 첫 번째 날 자정, 즉 Unix 클럭 시간의 시작입니다.
다음 함수는 PL/SQL에 대해 동일하게 수행됩니다.시작 지점(여기서 ms=1)에서 현재 타임스탬프를 뺍니다.다양한 시간 성분을 추출하여 초 단위로 변환합니다.마지막으로 모든 값에 1000을 곱하여 밀리초 단위로 값을 얻습니다.
create or replace function current_millisecs
return number
is
base_point constant timestamp := to_timestamp('01-JAN-1970 00:00:00.000');
now constant timestamp := systimestamp AT TIME ZONE 'UTC' ;
begin
return (
((extract(day from (now-base_point)))*86400)
+ ((extract(hour from (now-base_point)))*3600)
+ ((extract(minute from (now-base_point)))*60)
+ ((extract(second from (now-base_point))))
) * 1000;
end;
/
데이터베이스에서 Java를 사용하도록 설정한 경우 대신 Java Stored Procedure를 만드는 것이 더 간단할 수 있습니다.
create or replace function currentTimeMillis return number as
language java name 'java.lang.System.currentTimeMillis() return java.lang.Integer';
/
두 가지 접근 방식의 비교:
SQL> select currentTimeMillis as JAVA
2 , current_millisecs as PLSQL
3 , currentTimeMillis - current_millisecs as DIFF
4 from dual
5 /
JAVA PLSQL DIFF
---------- ---------- ----------
1.2738E+12 1.2738E+12 0
SQL>
(이전 버전의 PL/SQL 함수에서 비정상적인 결과를 초래한 오타를 발견한 Simon Nickerson에게 감사드립니다.)
덧붙여서, 100초에 가까운 시간에만 관심이 있다면 Oracle에는 DBMS_UTILITY라는 기본 제공 기능이 있습니다.GET_TIME().
이 링크는 Oracle용 currentmillis.com 의 모든 언어에 도움이 됩니다.
SELECT (SYSDATE - TO_DATE('01-01-1970 00:00:00', 'DD-MM-YYYY HH24:MI:SS')) * 24 * 60 * 60 * 1000 FROM DUAL
- DB 표준 시간대 제한 없음
- 밀리초 단위로
- XE에서의 작업
함수 current_time_ms반송 번호이라out_결과 번호;시작한다.extract 선택(day from(sys_extract_utc(시스템스탬프)) - to_timestamp('1970-01-01', 'YYY-MM-DD')) * 86400000to_number(to_char(sys_extract_utc(시스템 스탬프)), 'SSSSSSFF3')결과적으로이중에서;결과를 반환합니다.종료 current_time_ms;
사용해 보십시오.
추출 선택(day from(sys_extract_utc(타임존 'GMT'의 시스템 스탬프) - to_timestamp('1970-01-01', 'YYY-MM-DD')) * 86400000 + to_number(to_char(sys_extract_ut')), 'SSFS3'(듀얼)
언급URL : https://stackoverflow.com/questions/2824710/oracle-equaivalent-of-java-system-currenttimemillis
'programing' 카테고리의 다른 글
c#을 사용하여 asp.net 의 쿼리 문자열에서 항목을 제거하려면 어떻게 해야 합니까? (0) | 2023.07.30 |
---|---|
JQuery의 파일 입력에서 데이터 가져오기 (0) | 2023.07.30 |
"식 유형이 잘못됨"에서 부울 반환 함수가 실패함 (0) | 2023.07.30 |
운영 환경에서 MemoryStore 사용 (0) | 2023.07.30 |
MariaDB: 원격 액세스에서 액세스가 거부되었지만 사용 권한이 있어야 합니다. (0) | 2023.07.30 |