MySQL 타임스탬프 날짜 범위 선택
이것을 어디서부터 시작해야 할지 잘 모르겠습니다.누가 나를 올바른 방향으로 인도해 줄 수 있습니까?
MySQL에 타임스탬프 열이 있는데 예를 들어 2010년 10월에 있는 모든 타임스탬프와 같은 날짜 범위를 선택하려고 합니다.
감사해요.
일반적으로 다음과 같습니다.
SELECT *
FROM yourtable
WHERE yourtimetimefield>='2010-10-01'
AND yourtimetimefield< '2010-11-01'
그러나 유닉스 타임스탬프가 있기 때문에 다음과 같은 것이 필요합니다.
SELECT *
FROM yourtable
WHERE yourtimetimefield>=unix_timestamp('2010-10-01')
AND yourtimetimefield< unix_timestamp('2010-11-01')
몇 초의 짧은 시간을 들이지 않고 타임스탬프를 위한 작고 유연한 방법은 다음과 같습니다.
SELECT * FROM table_name
WHERE field_name
BETWEEN UNIX_TIMESTAMP('2010-10-01') AND UNIX_TIMESTAMP('2010-10-31 23:59:59')
만약 당신이 몇 초와 MySQL의 최신 버전을 사용하고 있다면, 당신은 그것을 사용하는 접근법을 취하는 것이 더 나을 것입니다.>=
그리고.<
워터의 대답에 따라 연산자.
다음은 분수 초 정밀도(사용 중인 최대 정밀도)로 정의된 시간 필드의 예입니다.
mysql> create table time_info (t_time time(6), t_datetime datetime(6), t_timestamp timestamp(6), t_short timestamp null);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into time_info set t_time = curtime(6), t_datetime = now(6), t_short = t_datetime;
Query OK, 1 row affected (0.01 sec)
mysql> select * from time_info;
+-----------------+----------------------------+----------------------------+---------------------+
| 22:05:34.378453 | 2016-01-11 22:05:34.378453 | 2016-01-11 22:05:34.378453 | 2016-01-11 22:05:34 |
+-----------------+----------------------------+----------------------------+---------------------+
1 row in set (0.00 sec)
저는 이 질문에 대해 많은 사람들이 댓글을 다는 것을 볼 수 있습니다.하지만 제 생각에는, 단순한 사용은LIKE
표에서 데이터를 얻는 것이 더 쉬울 수 있습니다.
SELECT * FROM table WHERE COLUMN LIKE '2013-05-11%'
사용하다LIKE
데이터 와일드 문자 검색을 게시합니다.이것이 당신의 문제를 해결하기를 바랍니다.
SELECT * FROM table WHERE col >= '2010-10-01' AND col <= '2010-10-31'
이 SQL 쿼리는 데이터를 추출합니다.그것은 쉽고 빠릅니다.
SELECT *
FROM table_name
WHERE extract( YEAR_MONTH from timestamp)="201010";
가능한 경우 항상 where 절의 열에 함수를 적용하지 마십시오.
SELECT *
FROM table_name
WHERE timestamp >= UNIX_TIMESTAMP('2010-10-01 00:00:00')
AND timestamp < UNIX_TIMESTAMP('2010-11-01 00:00:00');
타임스탬프 열(예: FROM_UNIXTIME(타임스탬프) = ...)에 함수를 적용하면 인덱싱이 훨씬 어려워집니다.
mysql 타임스탬프가 있으면 다음과 같습니다.2013-09-29 22:27:10
당신은 이걸 할 수 있다.
select * from table WHERE MONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(time)))=9;
unix로 변환한 다음 unix 시간 함수를 사용하여 월(이 경우 9월)을 추출합니다.
언급URL : https://stackoverflow.com/questions/3976837/mysql-timestamp-select-date-range
'programing' 카테고리의 다른 글
merge-commit이 중간에 있는 커밋을 지우는 방법은 무엇입니까? (0) | 2023.08.16 |
---|---|
SYS_CONNECT_를 사용하는 경우 Oracle ORA-30004BY_PATH 함수, (0) | 2023.08.16 |
중첩 양식 그룹의 컨트롤을 각도로 가져오는 방법 (0) | 2023.08.16 |
iPhone / iOS : 우편번호 HTML5 키보드 제시 (0) | 2023.08.16 |
HTML.vmdklist에 대한 변경 이벤트 (0) | 2023.08.16 |