返回
前端
分类

返回 date 的星期索引(1 = Sunday,返回日期date的星期索引(1=星期天

日期: 2020-01-25 16:35 浏览次数 : 180

mysql> SELECT something FROM tbl_name
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

mysql 时间改变函数的用法

DAYOFWEEK(date) 
回来 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday卡塔尔国。索引值切合 ODBC 的正经八百。 
mysql> SELECT DAYOFWEEK('1998-02-03');
        -> 3

DAYOFWEEK(date)  
归来日期date的星期索引(1=星期日,2=星期二, ……7=星期天卡塔尔国。这一个索引值对应于ODBC标准。  
mysql> select DAYOFWEEK(2007-10-31);  
-> 4

WEEKDAY(date) 
回去 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday卡塔尔国: 
mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
        -> 1
mysql> SELECT WEEKDAY('1997-11-05');
        -> 2

WEEKDAY(date)  
回来date的星期索引(0=周风华正茂,1=周生机勃勃, ……6= 星期日卡塔尔。  
mysql> select WEEKDAY('2007-10-31 13:05:00');  
-> 2
mysql> select WEEKDAY('2007-10-31');
-> 2  

DAYOFMONTH(date) 
回去 date 是菊秋底的第几天,范围为 1 到 31: 
mysql> SELECT DAYOFMONTH('1998-02-03');
        -> 3

DAYOFMONTH(date)  
归来date的月份中国和日本期,在1到31限定内。  
mysql> select DAYOFMONTH('2007-10-31');  
-> 31

DAYOFYEAR(date) 
回来 date 是一年中的第几天,范围为 1 到 366: 
mysql> SELECT DAYOFYEAR('1998-02-03');
        -> 34

DAYOFYEAR(date)  
重返date在一年中的日数, 在1到366限量内。  
mysql> select DAYOFYEAR('2007-10-31');  
-> 304  

MONTH(date) 
回去 date 中的月份,范围为 1 到 12: 
mysql> SELECT MONTH('1998-02-03');
        -> 2

MONTH(date)  
返回date的月份,范围1到12。  
mysql> select MONTH('2007-10-31');  
-> 10

DAYNAME(date) 
回到 date 的星期名: 
mysql> SELECT DAYNAME("1998-02-05");
        -> 'Thursday'

DAYNAME(date)  
回来date的礼拜名字。  
mysql> select DAYNAME("2007-10-31");  
-> 'Wednesday'  

MONTHNAME(date) 
归来 date 的月度名: 
mysql> SELECT MONTHNAME("1998-02-05");
        -> 'February'

MONTHNAME(date)  
回到date的月份名字。  
mysql> select MONTHNAME("2007-10-31");  
-> 'October'  

QUARTER(date) 
归来 date 在一年中的季度,范围为 1 到 4: 
mysql> SELECT QUARTER('98-04-01');
        -> 2

QUARTER(date) 
回去date一年中的季度,范围1到4。  
mysql> select QUARTER('2007-10-31');  
-> 4  

WEEK(date) 
WEEK(date,first) 
对此周天是一周中的第一天的场地,尽管函数独有三个参数调用,重返 date 为一年的第几周,重回值范围为 0 到 53 (是的,也有第 53 周的启幕State of Qatar。四个参数方式的 WEEK(State of Qatar 允许你内定七日是或不是以周天或星期四最早,以致再次来到值为 0-53 依旧 1-52。 这里的多个表展现第二个参数是怎样工作的: 值  含义  
必赢备用网址 ,0  18日以星期日起头,重返值范围为 0-53  
1  一周以星期四初始,重临值范围为 0-53  
2  二日以星期日上马,再次来到值范围为 1-53  
3  十四十日以周五先河,再次回到值范围为 1-53 (ISO 8601卡塔尔  

WEEK(date)  
   
WEEK(date,first)  
对于周日是12日的率后天之处,有叁个单个参数,重临date的周数,范围在0到52。2个参数格局WEEK(卡塔尔(قطر‎允许你钦赐星期是还是不是上马于星期日或周三。假如首个参数是0,星期从星期日最初,若是第二个参数是1,从星期二开头。  
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-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

YEAR(date)  
返回date的年份,范围在1000到9999。  
mysql> select YEAR('98-02-03');  
-> 1998  

注意,在版本 4.0 中,WEEK(#,0卡塔尔(قطر‎ 被改成为相称 USA 历法。 注意,要是一周是上一年的末梢一周,当您从未利用 2 或 3 做为可选参数时,MySQL 将重返 0: 
mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
        -> 2000, 0
mysql> SELECT WEEK('2000-01-01',2);
        -> 52

HOUR(time)  
返回time的小时,范围是0到23。  
mysql> select HOUR('10:05:03');  
-> 10  

你大概会争辨说,当给定的日期值实际上是 壹玖玖捌 年的第 52 周的黄金年代局地时,MySQL 对 WEEK(State of Qatar 函数应该回到 52。大家决定重返 0 ,是因为大家希望该函数重返“在钦命年份中是第几周”。当与其他的领到日期值中的月日值的函数结合使用时,那使得 WEEK(State of Qatar 函数的用法可靠。 假诺你更期望能获取确切的年-周值,那么你应该运用参数 2 或 3 做为可选参数,也许利用函数 YEALANDWEEK(State of Qatar : 
mysql> SELECT YEARWEEK('2000-01-01');
        -> 199952
mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2);
        -> 52

MINUTE(time)  
返回time的分钟,范围是0到59。  
mysql> select MINUTE('98-02-03 10:05:03');  
-> 5  

YEAR(date) 
返回 date 的年份,范围为 1000 到 9999: 
mysql> SELECT YEAR('98-02-03');
        -> 1998

SECOND(time)  
回来time的秒数,范围是0到59。  
mysql> select SECOND('10:05:03');  
-> 3  

YEARWEEK(date) 
YEARWEEK(date,first) 
回到二个日期值是的哪一年的哪15日。第一个参数的样式与效果与利益完全与 WEEK(卡塔尔 的第一个参数生机勃勃致。注意,对于给定的日子参数是一年的首先周或最终七日的,再次回到的年份值可能与日期参数给出的年份不等同: 
mysql> SELECT YEARWEEK('1987-01-01');
        -> 198653

PERIOD_ADD(P,N)  
充实N个月到阶段P(以格式YYMM或YYYYMM卡塔尔。以格式YYYYMM重回值。注意阶段参数P不是日期值。  
mysql> select PERIOD_ADD(9801,2);  
-> 199803  

专一,对于可选参数 0 或 1,周值的再次回到值不一样于 WEEK(卡塔尔国 函数所再次回到值(0卡塔尔(قطر‎, WEEK(卡塔尔 依据给定的年语境再次回到周值。 
HOUR(time) 
归来 time 的小时值,范围为 0 到 23: 
mysql> SELECT HOUR('10:05:03');
        -> 10

PERIOD_DIFF(P1,P2)  
重返在有时P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时代参数P1和P2不是日期值。  
mysql> select PERIOD_DIFF(9802,199703);  
-> 11  

MINUTE(time) 
重临 time 的分钟值,范围为 0 到 59: 
mysql> SELECT MINUTE('98-02-03 10:05:03');
        -> 5

DATE_ADD(date,INTERVAL expr type)  
   
DATE_SUB(date,INTERVAL expr type)  
   
ADDDATE(date,INTERVAL expr type)  
   
SUBDATE(date,INTERVAL expr type)  
那个成效施行日期运算。对于MySQL 3.22,他们是新的。ADDDATE(卡塔尔(قطر‎和SUBDATE(卡塔尔是DATE_ADD()和DATE_SUB(State of Qatar的同义词。 
在MySQL 3.第23中学,你能够使用+和-实际不是DATE_ADD()和DATE_SUB(State of Qatar。(见例子)date是一个点名开端日期的 
DATETIME或DATE值,expr是钦点加到开始日期或从发轫日期减去的间距值二个表达式,expr是三个字符串;它可以以 
贰个“-”领头表示负间隔。type是二个根本词,指明表明式应该怎么被解释。EXTRACT(type FROM dateState of Qatar函数从日期 
中回到“type”间距。下表呈现了type和expr参数怎么样被提到: type值 含义 期待的expr格式  
SECOND 秒 SECONDS  
MINUTE 分钟 MINUTES  
HOUR 时间 HOURS  
DAY 天 DAYS  
MONTH 月 MONTHS  
YEAR 年 YEARS  
MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"  
HOUR_MINUTE 小时和分钟 "HOULacrosseS:MINUTES"  
DAY_HOU奔驰M级 天和时辰 "DAYS HOU奔驰G级S"  
YEAR_MONTH 年和月 "YEARS-MONTHS"  
HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"  
DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"  
DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"  

SECOND(time) 
返回 time 的秒值,范围为 0 到 59: 
mysql> SELECT SECOND('10:05:03');
        -> 3

MySQL在expr格式中允许别的标点分隔符。表示展现的是建议的分隔符。假若date参数是几个DATE值并且你的总结仅仅满含YEA瑞鹰、MONTH和DAY部分(即,没偶尔间部分卡塔尔,结果是三个DATE值。不然结果是叁个DATETIME值。  

PERIOD_ADD(P,N) 
日增 N 个月届期期 P(格式为 YYMM 或 YYYYMM卡塔尔国中。以 YYYYMM 格式再次回到值。 注意,时期参数 P 不是 一个日期值: 
mysql> SELECT PERIOD_ADD(9801,2);
        -> 199803

mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;  
-> 1998-01-01 00:00:00  
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";  
-> 1998-01-01  
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;  
-> 1997-12-31 23:59:59  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL 1 SECOND);  
-> 1998-01-01 00:00:00  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL 1 DAY);  
-> 1998-01-01 23:59:59  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL "1:1" MINUTE_SECOND);  
-> 1998-01-01 00:01:00  
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",  
INTERVAL "1 1:1:1" DAY_SECOND);  
-> 1997-12-30 22:58:59  
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",  
INTERVAL "-1 10" DAY_HOUR);  
-> 1997-12-30 14:00:00  
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);  
-> 1997-12-02  
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");  
-> 1999  
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");  
-> 199907  
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");  
-> 20102  

PERIOD_DIFF(P1,P2) 
归来时代 P1 和 P2 之间的月数。P1 和 P2 应有以 YYMM 或 YYYYMM 钦命。 注意,时期参数 P1 和 P2 不是 日期值: 
mysql> SELECT PERIOD_DIFF(9802,199703);
        -> 11

倘令你钦定太短的间距值(不包涵type关键词期望的间距部分卡塔尔(قطر‎,MySQL借令你省掉了间距值的最左侧部分。举个例子,如若你钦定多个type是DAY_SECOND,值expr被期望有天、时辰、分钟和秒部分。假若你象"1:10"那样内定值,MySQL假使日子和时辰某个是错过的同一时候值代表分钟和秒。换句话说,"1:10" DAY_SECOND以它相当于于"1:10" MINUTE_SECOND的不二诀窍批注,那对那MySQL解释TIME值表示通过的时间而非作为一天的时间的法子有二义性。假若您使用确实不得法的日期,结果是NULL。假如您扩展MONTH、YEA汉兰达_MONTH或YEAHaval况且结果日期大于新月份的最大值天数,日子在新月用最大的天调度。  

DATE_ADD(date,INTERVAL expr type) 
DATE_SUB(date,INTERVAL expr type) 
ADDDATE(date,INTERVAL expr type) 
SUBDATE(date,INTERVAL expr type) 
那几个函数实行日期的算术运算。ADDDATE(卡塔尔国 和 SUBDATE(State of Qatar 分别是 DATE_ADD() 和 DATE_SUB(State of Qatar 的相近词。 在 MySQL 3.23 中,要是表明式的左侧是三个日期值或二个日猪时间型字段,你能够利用 + 和 - 替代 DATE_ADD() 和 DATE_SUB(State of Qatar(示比方下卡塔尔(قطر‎。 参数 date 是二个 DATETIME 或 DATE 值,钦定三个日期的发端。expr 是一个表明式,钦点从上马日期上加码照旧减去间距值。expr 是一个字符串;它能够以三个 “-” 起头表示三个负的间距值。type 是三个要害词,它标记着表达式以何格式被讲授。 下表展现 type 和 expr 参数是何等关联的: type 值  expr 期待的格式  
SECOND  SECONDS  
MINUTE  MINUTES  
HOUR  HOURS  
DAY  DAYS  
MONTH  MONTHS  
YEAR  YEARS  
MINUTE_SECOND  "MINUTES:SECONDS"  
HOUR_MINUTE  "HOURS:MINUTES"  
DAY_HOUR  "DAYS HOURS"  
YEAR_MONTH  "YEARS-MONTHS"  
HOUR_SECOND  "HOURS:MINUTES:SECONDS"  
DAY_MINUTE  "DAYS HOURS:MINUTES"  
DAY_SECOND  "DAYS HOURS:MINUTES:SECONDS"  
在 expr 的格式中,MySQL 允许任何字符作为定界符。表中所呈现的是提议的定界字符。要是 date 参数是一个 DATE 值,而且总括的间隔仅唯有 YEALacrosse、MONTH 和 DAY 部分(没有的时候间有个别State of Qatar,那么再次来到值也是叁个 DATE 值。不然重返值是三个 DATETIME 值: 
mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
        -> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
        -> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
       -> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    ->                 INTERVAL 1 SECOND);
        -> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    ->                 INTERVAL 1 DAY);
        -> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    ->                 INTERVAL "1:1" MINUTE_SECOND);
        -> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
    ->                 INTERVAL "1 1:1:1" DAY_SECOND);
        -> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
    ->                 INTERVAL "-1 10" DAY_HOUR);
        -> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
        -> 1997-12-02

DAYOFWEEK(dateState of Qatar重返日期date的星期索引(1=星期六,2=礼拜四,……7=星期日卡塔尔国。这一个索引值对应于ODBC规范。 mysqlselectDAY...