>데이터 베이스 >MySQL 튜토리얼 >mysql에서 특정 기간 동안의 레코드를 쿼리하는 방법

mysql에서 특정 기간 동안의 레코드를 쿼리하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-11-18 09:46:404352검색

일정 기간 동안의 레코드를 쿼리하는 Mysql 방법: 1. N일 내의 레코드를 쿼리하려면 코드는 [WHERE TO_DAYS(NOW()) - TO_DAYS(시간 필드)

$sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(add_time)<=86400 group by video_id order by n desc ";
$sql="select a.id,a.title,b.n from video_info a,(".$sql.")b where a.id=b.video_id order by n desc limit 20";

N일 이내의 기록 mysql에서 특정 기간 동안의 레코드를 쿼리하는 방법

WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N

오늘의 기록

where date(时间字段)=date(now())

또는
where to_days(时间字段) = to_days(now());

일주일 동안의 질의:

select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

한 달 동안의 질의:

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);

쿼리는 date_col이 있는 모든 레코드를 선택합니다. 지난 30일 동안의 가치.

mysql> SELECT something FROM tbl_name
            WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;    //真方便,以前都是自己写的,竟然不知道有这,失败.

DAYOFWEEK(날짜) 날짜의 요일 인덱스를 반환합니다(1 = 일요일, 2 = 월요일, ... 7 = 토요일). 인덱스 값은 ODBC 표준을 따릅니다.

mysql> SELECT DAYOFWEEK(’1998-02-03’);
         -> 3

WEEKDAY(date)

날짜의 주 인덱스를 반환합니다(0 = 월요일, 1 = 화요일, ... 6 = 일요일):

mysql> SELECT WEEKDAY(’1998-02-03 22:23:00’);
         -> 1
mysql> SELECT WEEKDAY(’1997-11-05’);
         -> 2
DAYOFMONTH(date)

반품 날짜는 해당 월의 날짜이며 범위는 1~31입니다.

mysql> SELECT DAYOFMONTH(’1998-02-03’);
         -> 3
DAYOFYEAR(date)

반품 날짜는 해당 연도의 날짜이며 범위는 1~31입니다. 366:

mysql> SELECT DAYOFYEAR(’1998-02-03’);
         -> 34
MONTH(date)

1부터 12까지의 월을 날짜로 반환합니다. DAYOFWEEK(date)  

返回 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准。  

mysql> SELECT MONTH(’1998-02-03’);
         -> 2

WEEKDAY(date)  

返回 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday):  

mysql> SELECT DAYNAME("1998-02-05");
         -> ’Thursday’

DAYOFMONTH(date)  

返回 date 是一月中的第几天,范围为 1 到 31:  

mysql> SELECT MONTHNAME("1998-02-05");
         -> ’February’

DAYOFYEAR(date)  

返回 date 是一年中的第几天,范围为 1 到 366:  

mysql> SELECT QUARTER(’98-04-01’);
         -> 2

MONTH(date)  

返回 date 中的月份,范围为 1 到 12:  

mysql> SELECT WEEK(’1998-02-20’);
         -> 7
mysql> SELECT WEEK(’1998-02-20’,0);
         -> 7
mysql> SELECT WEEK(’1998-02-20’,1);
         -> 8
mysql> SELECT WEEK(’1998-12-31’,1);
         -> 53

DAYNAME(date)  

返回 date 的星期名:  

mysql> SELECT YEAR(’2000-01-01’), WEEK(’2000-01-01’,0);
         -> 2000, 0
mysql> SELECT WEEK(’2000-01-01’,2);
         -> 52

MONTHNAME(date)  

返回 date 的月份名:  

mysql> SELECT YEARWEEK(’2000-01-01’);
         -> 199952
mysql> SELECT MID(YEARWEEK(’2000-01-01’),5,2);
         -> 52

QUARTER(date)  

返回 date 在一年中的季度,范围为 1 到 4:  

mysql> SELECT YEAR(’98-02-03’);
         -> 1998

WEEK(date)  

WEEK(date,first)  

对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回 date 为一年的第几周,返回值范围为 0 到 53 (是的,可能有第 53 周的开始)。两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。这里的一个表显示第二个参数是如何工作的:

值     含义

0     一周以星期日开始,返回值范围为 0-53

1      一周以星期一开始,返回值范围为 0-53

2      一周以星期日开始,返回值范围为 1-53

3      一周以星期一开始,返回值范围为 1-53 (ISO 8601)

mysql> SELECT YEARWEEK(’1987-01-01’);
         -> 198653

注意,在版本 4.0 中,WEEK(#,0) 被更改为匹配 USA 历法。 注意,如果一周是上一年的最后一周,当你没有使用 2 或 3 做为可选参数时,MySQL 将返回 0:

mysql> SELECT HOUR(’10:05:03’);
         -> 10

你可能会争辩说,当给定的日期值实际上是 1999 年的第 52 周的一部分时,MySQL 对 WEEK() 函数应该返回 52。我们决定返回 0 ,是因为我们希望该函数返回“在指定年份中是第几周”。当与其它的提取日期值中的月日值的函数结合使用时,这使得 WEEK() 函数的用法可靠。如果你更希望能得到恰当的年-周值,那么你应该使用参数 2 或 3 做为可选参数,或者使用函数 YEARWEEK() :

mysql> SELECT MINUTE(’98-02-03 10:05:03’);
         -> 5

YEAR(date)

返回 date 的年份,范围为 1000 到 9999:

mysql> SELECT SECOND(’10:05:03’);
         -> 3

YEARWEEK(date)

YEARWEEK(date,first)

返回一个日期值是的哪一年的哪一周。第二个参数的形式与作用完全与 WEEK() 的第二个参数一致。注意,对于给定的日期参数是一年的第一周或最后一周的,返回的年份值可能与日期参数给出的年份不一致:

mysql> SELECT PERIOD_ADD(9801,2);
         -> 199803

注意,对于可选参数 0 或 1,周值的返回值不同于 WEEK() 函数所返回值(0), WEEK() 根据给定的年语境返回周值。

HOUR(time)

返回 time 的小时值,范围为 0 到 23:

rrreee

MINUTE(time)

返回 time 的分钟值,范围为 0 到 59:

rrreee

SECOND(time)

返回 time 的秒值,范围为 0 到 59:

rrreee

PERIOD_ADD(P,N)

增加 N 个月到时期 P(格式为 YYMM 或 YYYYMM)中。以 YYYYMM 格式返回值。 注意,期间参数 P 不是 一个日期值:

rrreee

PERIOD_DIFF(P1,P2)rrreee

DAYNAME(date)

날짜를 반환합니다. 주의:

rrreee

MONTHNAME(date)

날짜의 월 이름을 반환합니다:

rrreee

QUARTER(date)

연도의 분기를 다음 형식으로 반환합니다. date , 1~4 범위:

rrreee

WEEK(date) 🎜🎜WEEK(date,first) 🎜🎜일요일이 주의 첫날인 경우 , 하나의 인수만 사용하여 함수를 호출하면 날짜가 해당 연도의 주로 반환되고 반환 값의 범위는 0~53입니다(예, 53번째 주가 시작될 수 있습니다). WEEK()의 두 인수 형식을 사용하면 주가 일요일 또는 월요일에 시작하는지 여부와 반환 값이 0-53 또는 1-52인지 지정할 수 있습니다. 다음은 두 번째 매개변수의 작동 방식을 보여주는 표입니다. 🎜🎜값 의미🎜🎜0 주는 일요일에 시작하고 반환 값 범위는 0-53🎜🎜1 주는 월요일에 시작하고 반환 값 범위는 0-53🎜 🎜 2 주는 일요일에 시작하고 반환 값 범위는 1-53입니다.🎜🎜3 주는 월요일에 시작하며 반환 값 범위는 1-53입니다(ISO 8601)🎜rrreee🎜버전 4.0에서는 WEEK(#,0 ) 미국 달력과 일치하도록 변경되었습니다. 해당 주가 전년도의 마지막 주인 경우 선택적 인수로 2 또는 3을 사용하지 않으면 MySQL은 0을 반환합니다. 🎜rrreee🎜 주어진 날짜 값이 실제로 1999일 때 52번째 부분인 경우라고 주장할 수 있습니다. 올해의 날짜가 52번째 주의 일부인 경우 MySQL의 WEEK() 함수는 52를 반환해야 합니다. 우리는 함수가 "지정된 연도의 주"를 반환하기를 원하기 때문에 0을 반환하기로 결정했습니다. 이렇게 하면 날짜 값에서 월 및 일 값을 추출하는 다른 함수와 함께 사용할 때 WEEK() 함수를 안정적으로 사용할 수 있습니다. 적절한 연도-주 값을 얻으려면 매개변수 2 또는 3을 선택적 매개변수로 사용하거나 YEARWEEK() 함수를 사용해야 합니다. 🎜rrreee🎜YEAR(date)🎜🎜 1000부터 9999까지의 날짜 연도: 🎜rrreee🎜YEARWEEK(date)🎜🎜YEARWEEK(date,first)🎜🎜 어느 날짜 값이 어느 주에 해당하는지 반환합니다. 해. 두 번째 매개변수의 형태와 기능은 WEEK()의 두 번째 매개변수와 완전히 일치합니다. 해당 연도의 첫 번째 또는 마지막 주의 특정 날짜 매개변수에 대해 반환된 연도 값은 날짜 매개변수에 의해 제공된 연도와 일치하지 않을 수 있습니다. 🎜rrreee🎜선택적 매개변수 0 또는 1의 경우 주 값 반환 값은 지정된 연도 컨텍스트를 기반으로 주 값을 반환하는 WEEK() 함수(0)에서 반환된 값과 다릅니다. 🎜🎜HOUR(time)🎜🎜0~23 범위의 시간 값을 반환합니다. 🎜rrreee🎜MINUTE(time)🎜🎜시간의 분 값을 반환합니다. , 범위는 0~59: 🎜rrreee🎜SECOND(time)🎜🎜0~59 범위의 시간의 두 번째 값을 반환합니다. 🎜rrreee🎜PERIOD_ADD(P,N) code>🎜 🎜기간 P에 N개월을 추가합니다(YYMM 또는 YYYYMM 형식). YYYYMM 형식으로 값을 반환합니다. 기간 매개변수 P는 날짜 값이 아닙니다. 🎜rrreee🎜<code>PERIOD_DIFF(P1,P2)🎜🎜 기간 P1과 P2 사이의 개월 수를 반환합니다. P1 및 P2는 YYMM 또는 YYYYMM으로 지정되어야 합니다. 기간 매개변수 P1 및 P2는 날짜 값이 아닙니다. 🎜🎜mysql> SELECT PERIOD_DIFF(9802,199703);🎜🎜 -> 11🎜🎜DATE_ADD(date,INTERVAL expr type)🎜🎜DATE_SUB(date,INTERVAL expr r 유형)🎜 🎜ADDDATE(날짜,INTERVAL expr 유형)🎜

SUBDATE(date,INTERVAL expr type)

이 함수는 날짜에 대한 산술 연산을 수행합니다. ADDDATE() 및 SUBDATE()는 각각 DATE_ADD() 및 DATE_SUB()의 동의어입니다. MySQL 3.23에서는 표현식의 오른쪽이 날짜 값 또는 날짜/시간 필드인 경우 DATE_ADD() 및 DATE_SUB() 대신 + 및 -를 사용할 수 있습니다(아래 예). 날짜 매개변수는 날짜의 시작을 지정하는 DATETIME 또는 DATE 값입니다. expr은 시작 날짜에서 간격 값을 더할 것인지 뺄 것인지를 지정하는 표현식입니다. expr은 문자열입니다. 앞에 "-"를 붙여 음수 간격 값을 나타낼 수 있습니다. type은 표현식이 해석되는 형식을 나타내는 키워드입니다.

위 내용은 mysql에서 특정 기간 동안의 레코드를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.