집 >데이터 베이스 >MySQL 튜토리얼 >mysql에서 특정 기간 동안의 레코드를 쿼리하는 방법
일정 기간 동안의 레코드를 쿼리하는 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일 이내의 기록
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:
rrreeeMINUTE(time)
返回 time 的分钟值,范围为 0 到 59:
rrreeeSECOND(time)
返回 time 的秒值,范围为 0 到 59:
rrreeePERIOD_ADD(P,N)
增加 N 个月到时期 P(格式为 YYMM 或 YYYYMM)中。以 YYYYMM 格式返回值。 注意,期间参数 P 不是 一个日期值:
rrreeePERIOD_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!