下面以比較流行的mysql圖形化管理工具Navicat為例,其他工具或者在命令行中以及編程語言中操作時的執行的sql語句是一樣的。
創新互聯建站專注為客戶提供全方位的互聯網綜合服務,包含不限于成都做網站、網站設計、諸暨網絡推廣、小程序開發、諸暨網絡營銷、諸暨企業策劃、諸暨品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯建站為所有大學生創業者提供諸暨建站搭建服務,24小時服務熱線:028-86922220,官方網址:vcdvsql.cn
1、假設在數據庫中有一個名為testtest的表格,表格內容如下圖所示,表中有三條記錄是9月份的
2、打開一個查詢窗口,輸入查詢語句select * from?testtest?where month(date)='9';,該語句表示查詢testtest表格中9月份的記錄
3、點擊“運行”執行該sql語句,在下方可以看到已經查詢到了9月份的三條記錄
4、如需按年查詢可輸入select * from?testtest where year(date)='2017';,2017代表需要查詢的年份。如下圖所示只查詢到了一條記錄是2017年的
select year(curdate()),month(curdate()),day(curdate());
select weekofyear(curdate());
有點細微的差別,weekofyear(date)相當于week(date,3).
下面是week(date,Mode),取值的說明,根據自己的實際情況取自己想要的值
Mode 工作日 范圍 Week 1 為第一周 ...
0 周日 0-53 本年度中有一個周日
1 周一 0-53 本年度中有3天以上
2 周日 1-53 本年度中有一個周日
3 周一 1-53 本年度中有3天以上
4 周日 0-53 本年度中有3天以上
5 周一 0-53 本年度中有一個周一
6 周日 1-53 本年度中有3天以上
7 周一 1-53 本年度中有一個周一
select date_format(now(),'%Y')
select date_format(now(),'%m')
select date_format(now(),'%e')
select date_format(now(),'%U')
select year(curdate()),month(curdate()),dayofyear(curdate()),weekofyear(curdate());
◆ TIME(expr)
提取一個時間或日期時間表達式的時間部分,并將其以字符串形式返回。
mysql SELECT TIME('2003-12-31 01:02:03');
- '01:02:03'
mysql SELECT TIME('2003-12-31 01:02:03.000123');
- '01:02:03.000123'
◆ TIMEDIFF(expr,expr2)
TIMEDIFF() 返回起始時間 expr 和結束時間expr2 之間的時間。 expr 和expr2 為時間或 date-and-time 表達式,兩個的類型必須一樣。
mysql SELECT TIMEDIFF('2000:01:01 00:00:00',
- '2000:01:01 00:00:00.000001');
- '-00:00:00.000001'
mysql SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
- '1997-12-30 01:01:01.000002');
- '46:58:57.999999'
◆ TIMESTAMP(expr) , TIMESTAMP(expr,expr2)
對于一個單參數,該函數將日期或日期時間表達式 expr 作為日期時間值返回.對于兩個參數, 它將時間表達式 expr2 添加到日期或日期時間表達式 expr 中,將theresult作為日期時間值返回。
mysql SELECT TIMESTAMP('2003-12-31');
- '2003-12-31 00:00:00'
mysql SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');
- '2004-01-01 00:00:00'
◆ TIMESTAMPADD(interval,int_expr,datetime_expr)
將整型表達式int_expr 添加到日期或日期時間表達式 datetime_expr中。 int_expr 的單位被時間間隔參數給定,該參數必須是以下值的其中一個: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。
可使用所顯示的關鍵詞指定Interval值,或使用SQL_TSI_前綴。例如, DAY或SQL_TSI_DAY 都是正確的。
mysql SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
- '2003-01-02 00:01:00'
mysql SELECT TIMESTAMPADD(WEEK,1,'2003-01-02');
- '2003-01-09'
◆ TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。其結果的單位由interval 參數給出。interval 的法定值同TIMESTAMPADD()函數說明中所列出的相同。
mysql SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
- 3
mysql SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
- -1
◆ TIME_FORMAT(time,format)
其使用和 DATE_FORMAT()函數相同, 然而format 字符串可能僅會包含處理小時、分鐘和秒的格式說明符。其它說明符產生一個NULL值或0。
若time value包含一個大于23的小時部分,則 %H 和 %k 小時格式說明符會產生一個大于0..23的通常范圍的值。另一個小時格式說明符產生小時值模數12。
mysql SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
- '100 100 04 04 4'
◆ TIME_TO_SEC(time)
返回已轉化為秒的time參數。
mysql SELECT TIME_TO_SEC('22:23:00');
- 80580
mysql SELECT TIME_TO_SEC('00:39:38');
- 2378
◆ TO_DAYS(date)
給定一個日期date, 返回一個天數 (從年份0開始的天數 )。
mysql SELECT TO_DAYS(950501);
- 728779
mysql SELECT TO_DAYS('1997-10-07');
- 729669
TO_DAYS() 不用于陽歷出現(1582)前的值,原因是當日歷改變時,遺失的日期不會被考慮在內。
請記住, MySQL使用“日期和時間類型”中的規則將日期中的二位數年份值轉化為四位。例如, '1997-10-07'和 '97-10-07' 被視為同樣的日期:
mysql SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');
- 729669, 729669
對于1582 年之前的日期(或許在其它地區為下一年 ), 該函數的結果實不可靠的。
◆ UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
若無參數調用,則返回一個Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒數) 作為無符號整數。若用date 來調用UNIX_TIMESTAMP(),它會將參數值以'1970-01-01 00:00:00' GMT后的秒數的形式返回。date 可以是一個DATE 字符串、一個 DATETIME字符串、一個 TIMESTAMP或一個當地時間的YYMMDD 或YYYMMDD格式的數字。
mysql SELECT UNIX_TIMESTAMP();
- 882226357
mysql SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
- 875996580
當 UNIX_TIMESTAMP被用在 TIMESTAMP列時, 函數直接返回內部時戳值, 而不進行任何隱含的 “string-to-Unix-timestamp”轉化。假如你向UNIX_TIMESTAMP()傳遞一個溢出日期,它會返回 0,但請注意只有基本范圍檢查會被履行 (年份從1970 到 2037, 月份從01到12,日期從 01 到31)。
假如你想要減去 UNIX_TIMESTAMP() 列, 你或許希望刪去帶符號整數的結果。
◆ UTC_DATE, UTC_DATE()
返回當前 UTC日期值,其格式為 'YYYY-MM-DD' 或 YYYYMMDD,具體格式取決于函數是否用在字符串或數字語境中。
mysql SELECT UTC_DATE(), UTC_DATE() + 0;
- '2003-08-14', 20030814
◆ UTC_TIME, UTC_TIME()
返回當前 UTC 值,其格式為 'HH:MM:SS' 或HHMMSS,具體格式根據該函數是否用在字符串或數字語境而定。
mysql SELECT UTC_TIME(), UTC_TIME() + 0;
- '18:07:53', 180753
◆ UTC_TIMESTAMP, UTC_TIMESTAMP()
返回當前UTC日期及時間值,格式為 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS,具體格式根據該函數是否用在字符串或數字語境而定。
mysql SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
- '2003-08-14 18:08:04', 20030814180804
◆ WEEK(date[,mode])
該函數返回date 對應的星期數。WEEK() 的雙參數形式允許你指定該星期是否起始于周日或周一, 以及返回值的范圍是否為從0 到53 或從1 到53。若 mode參數被省略,則使用default_week_format系統自變量的值。請參見5.3.3節,“服務器系統變量”。
以下表說明了mode 參數的工作過程:
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
注意,假如有一個日期位于前一年的最后一周, 若你不使用2、3、6或7作為mode 參數選擇,則MySQL返回 0:
mysql SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
- 2000, 0
有人或許會提出意見,認為 MySQL 對于WEEK() 函數應該返回 52 ,原因是給定的日期實際上發生在1999年的第52周。我們決定返回0作為代替的原因是我們希望該函數能返回“給定年份的星期數”。這使得WEEK() 函數在同其它從日期中抽取日期部分的函數結合時的使用更加可靠。
假如你更希望所計算的關于年份的結果包括給定日期所在周的第一天,則應使用 0、2、5或 7 作為mode參數選擇。
mysql SELECT WEEK('2000-01-01',2);
- 52
作為選擇,可使用 YEARWEEK()函數:
mysql SELECT YEARWEEK('2000-01-01');
- 199952
mysql SELECT MID(YEARWEEK('2000-01-01'),5,2);
- '52'
◆ WEEKDAY(date)
返回date (0 = 周一, 1 = 周二, ... 6 = 周日)對應的工作日索引 weekday index for
mysql SELECT WEEKDAY('1998-02-03 22:23:00');
- 1
mysql SELECT WEEKDAY('1997-11-05');
- 2
◆ WEEKOFYEAR(date)
將該日期的陽歷周以數字形式返回,范圍是從1到53。它是一個兼容度函數,相當于WEEK(date,3)。
mysql SELECT WEEKOFYEAR('1998-02-20');
- 8
◆ YEAR(date)
返回date 對應的年份,范圍是從1000到9999。
mysql SELECT YEAR('98-02-03');
- 1998
◆ YEARWEEK(date), YEARWEEK(date,start)
返回一個日期對應的年或周。start參數的工作同 start參數對 WEEK()的工作相同。結果中的年份可以和該年的第一周和最后一周對應的日期參數有所不同。
mysql SELECT YEARWEEK('1987-01-01');
- 198653
注意,周數和WEEK()函數隊可選參數0或 1可能會返回的(0) w有所不同,原因是此時 WEEK() 返回給定年份的語境中的周。
select * from 表 where date_format(日期,'%Y-%m-%d')='2014-04-01' 日期
select * from 表 where date_format(日期,'%Y-%m')='2014-04' 月份
select * from 表 where date_format(日期,'%Y')='2014' 年
就是date_format(日期,'%Y-%m-%d') 這里的參數長短
1、查詢確定年月的數據,使用to_date或to_char都可以實現 SELECT * FROM 表名 WHERE TO_CHAR(日期列,'YYYY-MM') = TO_CHAR('2013-06','YYYY-MM') 或者 SELECT * FROM 表名 WHERE 日期列 = TO_Date('2013-06','YYYY-MM')
當前標題:mysql怎么查詢月份,mysql 怎么查詢所有月份的數據
網頁URL:http://vcdvsql.cn/article34/dsdjcse.html
成都網站建設公司_創新互聯,為您提供定制開發、外貿建站、自適應網站、企業網站制作、軟件開發、
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯