十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
mysql 怎么獲取前一個月的日期和前一年的日期
成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!
set @dt = now();
select extract(year_month from date_add(@dt, interval -1 month));
select extract(year_month from date_add(@dt, interval -1 year));
這樣就可以了
問題:
僅用慢日志文件,如何快速獲取分時報(bào)告?
如果有監(jiān)控系統(tǒng),獲取分時報(bào)告(每小時慢查詢的條數(shù)報(bào)告)不難,如果只有慢日志文件,就會有點(diǎn)費(fèi)勁。
實(shí)驗(yàn):
通過 pt-query-digest --timeline 功能,可以輸出帶時間戳的慢查詢條目
用 sed 將 timeline 報(bào)告濾出
安裝 termsql
使用 termsql,將報(bào)告導(dǎo)入,并使用 SQL 查詢一條記錄,以展示 termsql 的效果
可以看到 termsql 將 timeline 報(bào)告的每一行,整理成了一條數(shù)據(jù),放在 SQLite 中。
下面就可以盡情使用 SQL 獲取分時報(bào)告:
用一個復(fù)雜一點(diǎn)慢日志,獲得如下結(jié)果:
可以輕松定位到慢查詢的熱點(diǎn)時段,也便于發(fā)現(xiàn)業(yè)務(wù)的周期性規(guī)律。
termsql 是一個很方便的小工具:
1. 可以用于將文本導(dǎo)出到 SQLite 中,方便 SQL 查詢。
2. 它與 ps 或者 top 合用也有驚喜,比如找出 CPU 占用率高于 25% 的進(jìn)程:
mysql 日期時間查詢
MySQL數(shù)據(jù)庫中year()函數(shù)是求某個特定日期中的年份,代碼如下:
select '2015-08-11' as date,year('2015-08-11') as year;
確定一個日期是一年中的第幾個季度,可以用QUARTER()函數(shù)實(shí)現(xiàn),代碼如下:
SELECT '2015-08-11' AS DATE,QUARTER('2015-08-11') AS QUARTER;
返回一個日期是一年中的月份,利用month()函數(shù)實(shí)現(xiàn),代碼如下:
SELECT '2015-08-11' AS DATE,MONTH('2015-08-11') AS MONTH;
獲取一個確定日期是一個月份中的多少號,可以用day()函數(shù)求得,具體實(shí)現(xiàn)代碼如下:
SELECT '2015-08-11' AS DATE,DAY('2015-08-11') AS DAY;
有時日期中帶有時間,而如何獲取小時數(shù),這可以利用自帶的函數(shù)hour()實(shí)現(xiàn),代碼如下:
SELECT '2015-08-11 12:20:45' AS DATE,HOUR('2015-08-11 12:20:45') AS HOUR;
select curDate(); #獲取當(dāng)前日期select curTime(); #獲取當(dāng)前時間select now(); #獲取當(dāng)前日期+時間 列舉1個天數(shù)加減的例子,其他的看英文意思就可以理解了 select date_add(now(), interval 1 day); #當(dāng)前日期天數(shù)+1 select date_add(now(), interval -1 day); #當(dāng)前日期天數(shù)-1 select date_add(now(), interval 1 hour); select date_add(now(), interval 1 minute); select date_add(now(), interval 1 second); select date_add(now(), interval 1 microsecond); select date_add(now(), interval 1 week); select date_add(now(), interval 1 month); select date_add(now(), interval 1 quarter); select date_add(now(), interval 1 year); date_sub與date_add功能整合相反 select date_sub(now(), interval 1 day); #當(dāng)前日期天數(shù)-select date_sub(now(), interval -1 day); #當(dāng)前日期天數(shù)+select date_sub(now(), interval 1 hour); select date_sub(now(), interval 1 minute)select date_sub(now(), interval 1 second)select date_sub(now(), interval 1 microsecond)select date_sub(now(), interval 1 week)select date_sub(now(), interval 1 month)select date_sub(now(), interval 1 quarter)select date_sub(now(), interval 1 year); datediff函數(shù)計(jì)算兩個日期間隔的天數(shù) datediff(date1, date2); #date1 - date2 timediff函數(shù)計(jì)算兩個時間間隔 timediff(time1, time2); #time1 - time2 time1和time2的格式必須要一樣,返回時間差 str_to_date(str, format) 字符串轉(zhuǎn)換為日期 select str_to_date('11/09/2014', '%m/%d/%Y'); -- 2014-11-09 步驟閱讀
方法一:select date_format(日期字段,'%Y-%m') as '日期' from 表
方法二:mysql有日期函數(shù)?date_format
SELECT date_format(signDate,'%Y-%m') AS MY_YM FROM tablename WHERE 1;
方法三:對這個字段使用函數(shù)left或者substring
例如:
select left(signDate,7) as date from tablename 或者
select substring(signDate,0,7) as date from tablename
擴(kuò)展資料:
MySQL 截取部分日期
使用 DATE_FORMAT(get_date, '%Y-%m-%d') 函數(shù)截取。
其中:get_date 是需要截取的字段名;'%Y-%m-%d' 是截取后的日期格式。
select date_format('1997-10-04 22:23:00','%y %M %b %D %W %a %Y-%m-%d %H:%i:%s %r %T');
結(jié)果:97 October Oct 4th Saturday Sat 1997-10-04 22:23:00 10:23:00 PM 22:23:00
get_date = "2006-12-07"
SELECT count(*) FROM t_get_video_temp Where DATE_FORMAT(get_date, '%Y-%m-%d')='2006-12-07';
SELECT count(*) FROM t_get_video_temp Where get_date like '2006%-07%';