MySQL函數(shù)大全及用法示例(三)

轉(zhuǎn)自公眾號‘java一日一條’

java一日一條

3.日期函數(shù)

dayofweek(date)

返回日期date是星期幾(1=星期天,2=星期一,……7=星期六,odbc標準)

mysql> select dayofweek('1998-02-03');
  -> 3

weekday(date)

返回日期date是星期幾(0=星期一,1=星期二,……6= 星期天)。

mysql> select weekday('1997-10-04 22:23:00');
  -> 5
mysql> select weekday('1997-11-05');
  -> 2

dayofmonth(date)

返回date是一月中的第幾日(在1到31范圍內(nèi))

mysql> select dayofmonth('1998-02-03');
  -> 3

dayofyear(date)

返回date是一年中的第幾日(在1到366范圍內(nèi))

mysql> select dayofyear('1998-02-03');
  -> 34

month(date)

返回date中的月份數(shù)值

mysql> select month('1998-02-03');
  -> 2

dayname(date)

返回date是星期幾(按英文名返回)

mysql> select dayname("1998-02-05");
  -> 'thursday'

monthname(date)

返回date是幾月(按英文名返回)

mysql> select monthname("1998-02-05");
  -> 'february'

quarter(date)

返回date是一年的第幾個季度

mysql> select quarter('98-04-01');
  -> 2

week(date,first)

返回date是一年的第幾周(first默認值0,first取值1表示周一是
周的開始,0從周日開始)

mysql> select week('1998-02-20');
  -> 7
mysql> select week('1998-02-20',0);
  -> 7
mysql> select week('1998-02-20',1);
  -> 8

year(date)

返回date的年份(范圍在1000到9999)

mysql> select year('98-02-03');
  -> 1998

hour(time)

返回time的小時數(shù)(范圍是0到23)

mysql> select hour('10:05:03');
  -> 10

minute(time)

返回time的分鐘數(shù)(范圍是0到59)

mysql> select minute('98-02-03 10:05:03');
  -> 5

second(time)

返回time的秒數(shù)(范圍是0到59)

mysql> select second('10:05:03');
  -> 3

period_add(p,n)

增加n個月到時期p并返回(p的格式y(tǒng)ymm或yyyymm)

mysql> select period_add(9801,2);
  -> 199803

period_diff(p1,p2)

返回在時期p1和p2之間月數(shù)(p1和p2的格式y(tǒng)ymm或yyyymm)

mysql> select period_diff(9802,199703);
  -> 11

date_add(date,interval expr type)

date_sub(date,interval expr type)

adddate(date,interval expr type)

subdate(date,interval expr type)

對日期時間進行加減法運算
(adddate()和subdate()是date_add()和date_sub()的同義詞,也
可以用運算符+和-而不是函數(shù)
date是一個datetime或date值,expr對date進行加減法的一個表
達式字符串type指明表達式expr應(yīng)該如何被解釋
 [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中允許任何標點做分隔符,如果所有是date值時結(jié)果是一個
date值,否則結(jié)果是一個datetime值)
 如果type關(guān)鍵詞不完整,則mysql從右端取值,day_second因為缺
少小時分鐘等于minute_second)
 如果增加month、year_month或year,天數(shù)大于結(jié)果月份的最大天
數(shù)則使用最大天數(shù))

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

to_days(date)

返回日期date是西元0年至今多少天(不計算1582年以前)

mysql> select to_days(950501);
  -> 728779
mysql> select to_days('1997-10-07');
  -> 729669

from_days(n)

給出西元0年至今多少天返回date值(不計算1582年以前)

mysql> select from_days(729669);
  -> '1997-10-07'

date_format(date,format)

根據(jù)format字符串格式化date值
 (在format字符串中可用標志符:
 %m 月名字(january……december)
 %w 星期名字(sunday……saturday)
 %d 有英語前綴的月份的日期(1st, 2nd, 3rd, 等等。)
 %y 年, 數(shù)字, 4 位
 %y 年, 數(shù)字, 2 位
 %a 縮寫的星期名字(sun……sat)
 %d 月份中的天數(shù), 數(shù)字(00……31)
 %e 月份中的天數(shù), 數(shù)字(0……31)
 %m 月, 數(shù)字(01……12)
 %c 月, 數(shù)字(1……12)
 %b 縮寫的月份名字(jan……dec)
 %j 一年中的天數(shù)(001……366)
 %h 小時(00……23)
 %k 小時(0……23)
 %h 小時(01……12)
 %i 小時(01……12)
 %l 小時(1……12)
 %i 分鐘, 數(shù)字(00……59)
 %r 時間,12 小時(hh:mm:ss [ap]m)
 %t 時間,24 小時(hh:mm:ss)
 %s 秒(00……59)
 %s 秒(00……59)
 %p am或pm
 %w 一個星期中的天數(shù)(0=sunday ……6=saturday )
 %u 星期(0……52), 這里星期天是星期的第一天
 %u 星期(0……52), 這里星期一是星期的第一天
 %% 字符% )

mysql> select date_format('1997-10-04 22:23:00','%w %m %
y');
  -> 'saturday october 1997'
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
s');
  -> '22:23:00'
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
%d %m %b %j');
  -> '4th 97 sat 04 10 oct 277'
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
%r %t %s %w');
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'

time_format(time,format)

和date_format()類似,但time_format只處理小時、分鐘和秒(其
余符號產(chǎn)生一個null值或0)

curdate()

current_date()

以'yyyy-mm-dd'或yyyymmdd格式返回當前日期值(根據(jù)返回值所
處上下文是字符串或數(shù)字)

mysql> select curdate();
  -> '1997-12-15'
mysql> select curdate() + 0;
  -> 19971215

curtime()
current_time()
 以'hh:mm:ss'或hhmmss格式返回當前時間值(根據(jù)返回值所處上
下文是字符串或數(shù)字)

mysql> select curtime();
  -> '23:50:26'
mysql> select curtime() + 0;

-> 235026

now()

sysdate()

current_timestamp()

以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回當前日期
時間(根據(jù)返回值所處上下文是字符串或數(shù)字)

mysql> select now();
  -> '1997-12-15 23:50:26'
mysql> select now() + 0;
  -> 19971215235026

unix_timestamp()

unix_timestamp(date)

返回一個unix時間戳(從'1970-01-01 00:00:00'gmt開始的秒
數(shù),date默認值為當前時間)

mysql> select unix_timestamp();
  -> 882226357
mysql> select unix_timestamp('1997-10-04 22:23:00');
  -> 875996580

from_unixtime(unix_timestamp)

以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回時間戳的
值(根據(jù)返回值所處上下文是字符串或數(shù)字)

mysql> select from_unixtime(875996580);
  -> '1997-10-04 22:23:00'
mysql> select from_unixtime(875996580) + 0;
  -> 19971004222300

from_unixtime(unix_timestamp,format)

以format字符串格式返回時間戳的值

mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
h:%i:%s %x');
  -> '1997 23rd december 03:43:30 x'

sec_to_time(seconds)

以'hh:mm:ss'或hhmmss格式返回秒數(shù)轉(zhuǎn)成的time值(根據(jù)返回值所處上下文是字符串或數(shù)字)

mysql> select sec_to_time(2378);
  -> '00:39:38'
mysql> select sec_to_time(2378) + 0;
  -> 3938

time_to_sec(time)

返回time值有多少秒

mysql> select time_to_sec('22:23:00');
  -> 80580
mysql> select time_to_sec('00:39:38');
  -> 2378

轉(zhuǎn)換函數(shù)

cast

用法:cast(字段 as 數(shù)據(jù)類型) [當然是否可以成功轉(zhuǎn)換,還要看數(shù)據(jù)類型強制轉(zhuǎn)化時注意的問題]
實例:

select cast(a as unsigned) as b from cardserver where order by b desc;

convert:

用法:convert(字段,數(shù)據(jù)類型)
實例:

select convert(a ,unsigned) as b from cardserver where order by b desc;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內(nèi)容