-- string to date
to_date("2013-02-01 13:04:00", 'YYYY-MM-DD HH24:MI:SS')


-- date to string
to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS')


-- unixtime to date
to_date('01-01-1970', 'DD-MM-YYYY')+ (sysdate / ( 60*60*24) - (5/24))
to_date('01-01-1970', 'DD-MM-YYYY')+ (sysdate/1000 / ( 60*60*24) - (5/24)) -- java


-- date to unixtime
round((to_date(sysdate, 'YYYY-MM-DD HH24:MI:SS') - to_date('01-01-1970','DD-mm-YYYY')) * (86400))
round((to_date(sysdate, 'YYYY-MM-DD HH24:MI:SS') - to_date('01-01-1970','DD-mm-YYYY')) * (86400)*1000) -- java

'DB > Oracle' 카테고리의 다른 글

오라클 유저 비밀번호 변경  (0) 2013.09.26
' 홑따옴표 처리  (0) 2013.09.04
오라클 명세서 쿼리  (0) 2013.03.27
update select문  (0) 2013.03.21
시작일자는 포함하면서 종료일자를 누락하는 경우가 있다. 종료일자가 없다면 복잡한 SQL문장이 구성되어 성능도 저하되기 때문에 종료일도 반드시 속성에 포함시켜 SQL문도 간결하고 성능도 보장해야 한다.

종료일이 없는 SQL문의 예> 

SELECT 필드1, 필드2
FROM 테이블명
WHERE 테이블명.시작일자 = (SELECT MAX(테이블명.시작일자) FROM 테이블명 WHERE 테이블명.시작일자 <= '조건일') 

SELECT 필드1, 필드2
FROM 테이블명 AS t1, (SELECT MAX(시작일자) FROM 테이블명 WHERE 시작일자 <= '조건일') AS t2
WHERE t1.시작일자 = t2.시작일자


하지만, 종료일을 넣게 되면 좀 더 간단해진다.

SELECT 필드1, 필드2
FROM 테이블명
WHERE 시작일자 <= '조건일' AND 종료일 > '조건일'


더불어서 최신여부 속성을 넣게 되면 GROUP BY 절을 사용하지 않아 성능이 빨라지게 된다.
UPDATE table1 AS a
SET col1=(SELECT col1 FROM table2 AS b WHERE a.col2 = b.col2)


'DB > MySQL' 카테고리의 다른 글

datetime 컬럼을 분단위로 group by 하기  (1) 2020.09.29
5.7 DB 파일로 복원  (0) 2020.06.04
외부 접근 허용  (0) 2019.10.28
Create table select, Insert select  (0) 2011.06.17
스키마내 테이블 수  (0) 2011.06.17

Create table select

테이블을 생성하여 결과값을 입력하는 구문이다.


원형>

CREATE TABLE 생성할 테이블명 SELECT * FROM 가져올 테이블명


>

CREATE TABLE test8.zipcode SELECT * FROM test5.zipcode



Insert select

이미 테이블이 만들어져 있는 경우 결과값만 입력하는 구문이다.


원형>

INSERT INTO 입력할 테이블명 SELECT 필드1, 필드2, 필드3 FROM test_source


>

INSERT INTO copyTable SELECT field1, field2, field3 FROM orgTable



'DB > MySQL' 카테고리의 다른 글

datetime 컬럼을 분단위로 group by 하기  (1) 2020.09.29
5.7 DB 파일로 복원  (0) 2020.06.04
외부 접근 허용  (0) 2019.10.28
SELECT UPDATE  (0) 2011.06.30
스키마내 테이블 수  (0) 2011.06.17

원형>

SELECT count(*)

FROM information_schema.tables

WHERE table_schema = '스키마이름'


>

SELECT count(*) AS number_of_tables

FROM information_schema.tables

WHERE table_schema = 'test5'


'DB > MySQL' 카테고리의 다른 글

datetime 컬럼을 분단위로 group by 하기  (1) 2020.09.29
5.7 DB 파일로 복원  (0) 2020.06.04
외부 접근 허용  (0) 2019.10.28
SELECT UPDATE  (0) 2011.06.30
Create table select, Insert select  (0) 2011.06.17

+ Recent posts