'mysql'에 해당되는 글 4건
- 2023.09.21 MySQL Join걸어서 Update하기
- 2023.05.18 mysql 두 날짜 사이의 날짜 목록 가져오기
- 2021.03.26 파일에서 Data를 직접 Table로 Import 시키기(MySQL)
- 2021.03.23 MySQL 날짜날짜 관련 사항들
꼭 까먹을만 하면 한번씩 쓰는 일이라...
나중에 찾아쓰기 좋게 여기에 적어놓음
UPDATE [TABLE_NAME] a INNER JOIN [TABLE_NAME_1] b ON A.[COL_NAME] = B.[COL_NAME]
SET [TARGET_COL_NAME] = (VALUE)
[WHERE ... ]
select * from
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
where selected_date between '2012-02-10' and '2012-02-15';
1970-01-01 은 적당한 값으로 바꿔도 무방
2012-02-10 은 목록 출력 시작일
2012-02-15 는 목록 출력 종료일, 오늘 날짜로 하고 싶으면 DATE_FORMAT(CURDATE(),'%Y-%m-%d') 를 사용가능
How to get list of dates between two dates in mysql select query
I want list of dates lies between two dates by select query. For example: If i give '2012-02-10' and '2012-02-15' I need the result. date ---------- 2012-02-10 2012-02-11 2012-02-12 2012-0...
stackoverflow.com
MySQL(MariaDB) 에서 구분자로 구분되어 있는 파일을 읽어 바로 Table에 집어 넣는 기능
LOAD DATA INFILE 파일이름 INTO TABLE 테이블이름
FIELDS TERMINATED BY 컬럼구분자
LINES TERMINATED BY 라인구분자
(
컬럼으로 구분되는 항목 대응 변수들(@로 시작)
) SET
각 컬럼명 = 변수들(후처리가 필요한 경우 사용)
LOAD DATA INFILE 파일이름 INTO TABLE 테이블이름위의 항목을 다 써야 하는 것은 아니고,
FIELDS TERMINATED BY 컬럼구분자
이정도만 써도 동작은 할 수 있음
예제 : (SET이하 부분에 괄호가 없음에 주의!!!)
LOAD DATA INFILE 'c:\\temp\\sample.txt' INTO TABLE tbl_sample
FIELDS TERMINATED BY '^'
LINES TERMINATED BY '\r\n'
(
@code1,
@code2,
@code3
) SET
`code1` = @code1,
`code2` = TRIM(@code2),
`code3` = @code3,
`InsertDate` = date_format(NOW(),'%Y%m%d%H%i%S');
관련 내용:
1. table의 컬럼갯수가 data 파일의 컬럼갯수 보다 많은 경우(추가 데이터가 필요한 경우)
: 위의 예제처럼 SET 부분에 컬럼명 및 데이터를 써줌
2. 파일의 내용에 대한 수정이 필요한 경우
: 위의 예제 처럼 SET 부분에 TRIM같은 식으로 후 처리 가능
3. Table의 마지막 컬럼에서 데이터 사이즈 경고가 나오는 경우
: 줄 끝에 대한 인식이 정상적으로 처리 되지 않아서 발생하는 현상으로 LINES TERMINATED BY 문을 사용하면 됨
- 현재 날짜 시간 가져오기
: CURDATE() -> 현재 날짜(YYYY-MM-DD)
: CURTIME() -> 현재 시간(HH:MI:SS)
: NOW(), SYSDATE() -> 현재 날짜, 시간 합쳐서 나옴
- 날짜 형식 설정
: DATE_FORMAT(시간, 형식문자열)
: 형식 문자열은 아래와 같음
%Y | 연 | 4자리 연도 |
%y | 연 | 2자리 연도 |
%m | 월 | 2자리 (00-12) |
%c | 월 | 1자리, 10보다 작을경우 (1-12) |
%M | 월 | 이름(January, February…) |
%b | 월 | 줄인 이름(Jan, Feb…) |
%d | 일 | 2자리 (00-31) |
%e | 일 | 1자리, 10보다 작을경우 (0-31) |
%D | 일 | 1st, 2nd… |
%H | 시 | 24시간 형식 (00-23) |
%h | 시 | 12시간 형식 (01-12) |
%I | 시 | 12시간 형식 (01-13) |
%k | 시 | 24시간 형식, 10보다 작을경우 한자리 (0-23) |
%l | 시 | 12시간 형식, 10보다 작을경우 한자리 (1-12) |
%i | 분 | 2자리 (00-59) |
%S | 초 | 2자리 (00-59) |
%s | 초 | 2자리 (00-59) |
%f | 마이크로초 | 100만분의 1초 |
%p | 오전/오후 | AM/PM |
%T | 시분초 | 24시간 형식 (hh:mm:ss) |
%r | 시분초 오전/오후 | 12시간 형식 (hh:mm:ss AM/PM) |
%j | 일 | 그해의 몇번째 일인지 표시 (001-366) |
%w | 일 | 그주의 몇번째 일인지 표시 (0=일요일, 6=토요일) |
%W | 주 | 이름(Monday,Tuesday…) |
%a | 주 | 줄인 이름(Mon,Tue…) |
%U | 주 | 그해의 몇번째 주인지 표시 (00-53) 일요일이 주의 첫번째일 |
%u | 주 | 그해의 몇번째 주인지 표시 (00-54) 월요일이 주의 첫번째일 |
%X | 연 | 그주가 시작된 해을 표시, %V와 같이 사용 |
%x | 연 | 그주가 시작된 해을 표시, %v와 같이 사용 |
%V | 주 | 그주가 시작된 해의 몇번째 주인지 표시 (01-53) 일요일이 주의 첫번째일 %X 와 함께사용 |
%v | 주 | 그주가 시작된 해의 몇번째 주인지 표시 (01-53) 월요일이 주의 첫번째일 %x 와 함께사용 |
: 위의 표는 m.blog.naver.com/callsonda/220363810001 이곳의 표가 잘 만들어져 있어서 내용을 가져왔습니다.