MySQL日期與時(shí)間數(shù)據(jù)類型的區(qū)別請(qǐng)看下表:
在青縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),青縣網(wǎng)站建設(shè)費(fèi)用合理。
每種日期和時(shí)間類型都有一個(gè)有效范圍。如果插入的值超出相應(yīng)范圍,系統(tǒng)會(huì)報(bào)錯(cuò)并將相應(yīng)的零值插入到數(shù)據(jù)庫(kù)中,各個(gè)類型的零值請(qǐng)看上表。
YEAR類型用4位數(shù)表示年份。范圍從1901~2155,插入超范圍的值時(shí)系統(tǒng)報(bào)錯(cuò)并插入0000。
DATE類型用YYYY-MM-DD形式顯示日期。范圍從1000-01-01~9999-12-31插入超范圍的值時(shí)系統(tǒng)報(bào)錯(cuò)并插入零值。此類型除了可接受YYYY-MM-DD和YYYYMMDD格式的輸入外,還可以識(shí)別其它一些不嚴(yán)格的語法格式,例如YYYY/MM/DD、YYYY.MM.DD等其他標(biāo)點(diǎn)符號(hào)作為間隔的形式日期值的輸入。
TIME類型用HH:MM:SS形式顯示時(shí)間。其中MM和SS的取值范圍是0~59,HH的取值范圍比較特別其取值范圍是0~838,一般來講小時(shí)數(shù)的范圍是0~23,但是為了滿足特殊情況的需要,MySQL擴(kuò)大了TIME類型的范圍,而且可以接受負(fù)數(shù)。TIME類型支持D HH:MM:S格式的時(shí)間表達(dá)字串,D表示天數(shù),取值范圍0~34。例如,輸入30 21:15:26,系統(tǒng)會(huì)將小時(shí)部分按30*24+21轉(zhuǎn)換為?741:15:26。除了標(biāo)準(zhǔn)的輸入方式HH:MM:SS外,此類型還可以接受一些非標(biāo)準(zhǔn)的輸入方式,例如,輸入12,系統(tǒng)會(huì)轉(zhuǎn)換為00:00:12、輸入1212,系統(tǒng)會(huì)轉(zhuǎn)換為
00:12:12、輸入121212,系統(tǒng)會(huì)轉(zhuǎn)換為12:12:12等。
DATETIME類型用YYYY-MM-SS HH:MM:SS形式顯示日期與時(shí)間。范圍從1000-01-01 00:00:00~9999-12-31 23:59:59?插入超范圍的值時(shí),系統(tǒng)報(bào)錯(cuò)并插入零值(0000-00-00 00:00:00)。此類型除了可接受YYYY-MM-SS HH:MM:SS格式的輸入外,還可以識(shí)別YYYYMMSSHHMMSS形式的輸入值。例如,輸入20170117174856,系統(tǒng)會(huì)轉(zhuǎn)換為
2017-01-17 17:48:56。
TIMESTAMP類型情況與DATETIME類型接近,但是它的取值范圍要比DATETIME類型窄很多,范圍從19700101080001~20380119111407(1970-01-01 08:00:01~2038-01-19 11:14:07)。**另外,TIMESTAMP類型還有一個(gè)特別之處,那就是它的值的時(shí)間部分是根據(jù)時(shí)區(qū)來顯示的,例如在東八區(qū)插入的TIMESTAMP類型值2017-01-16 18:04:25,在東七區(qū)的時(shí)間部分會(huì)顯示17:04:25,而在東九區(qū)則變?yōu)?9:04:25,對(duì)于這一點(diǎn)我們要特別留意。**
我們?cè)谶x擇日期與時(shí)間數(shù)據(jù)類型時(shí),請(qǐng)根據(jù)實(shí)際需求選擇相應(yīng)的類型,一般應(yīng)選擇剛好夠用最好,這樣可節(jié)省系統(tǒng)資源。例如只需要知道日期的選擇DATE類型、需要同時(shí)知道日期與時(shí)間的就選擇DATETIME類型、僅僅需要記錄時(shí)間的則選擇TIME類型等。
這個(gè)字節(jié)是表示年份的后面兩位數(shù)值,一個(gè)字節(jié)就夠了,表示的年份是1900+字節(jié)的值.
您好,一、年度查詢
查詢 本年度的數(shù)據(jù)
SELECT *
FROM blog_article
WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))
二、查詢季度數(shù)據(jù)
查詢數(shù)據(jù)附帶季度數(shù)
SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )
FROM `blog_article`
其他的同前面部分:查詢 本季度的數(shù)據(jù)
SELECT *
FROM blog_article
WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))
三、查詢?cè)露葦?shù)據(jù)
本月統(tǒng)計(jì)(MySQL)
select * from booking where month(booking_time) =
month(curdate()) and year(booking_time) = year(curdate())
本周統(tǒng)計(jì)(MySQL)
select * from spf_booking where month(booking_time) =
month(curdate()) and week(booking_time) = week(curdate())
四、時(shí)間段
N天內(nèi)記錄
WHERE TO_DAYS(NOW()) - TO_DAYS(時(shí)間字段) = N
當(dāng)天的記錄
where date(時(shí)間字段)=date(now())
或
where to_days(時(shí)間字段) = to_days(now());
查詢一周:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) = date(column_time);
查詢一個(gè)月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) = date(column_time);
查詢'06-03'到'07-08'這個(gè)時(shí)間段內(nèi)所有過生日的會(huì)員:
Select * From user Where
DATE_FORMAT(birthday,'%m-%d') = '06-03' and DATE_FORMAT(birthday,'%m-%d')
= '07-08';
統(tǒng)計(jì)一季度數(shù)據(jù),表時(shí)間字段為:savetime
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))
或
select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)
from yourTable
group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;
五、分組查詢
1、年度分組
2、月度分組
3、先按年度分組,再按月度分組
4、按年月分組
SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate FROM `blog_article` group by sdate
結(jié)果:
count( ArticleId ) sdate
17 0901
11 0902
5 0903
6 0904
2 0905
1 0907
12 0908
6 0909
11 0910
3 0911
select curDate(); #獲取當(dāng)前日期select curTime(); #獲取當(dāng)前時(shí)間select now(); #獲取當(dāng)前日期+時(shí)間
列舉1個(gè)天數(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);