1.1 獲得當(dāng)前日期+時(shí)間(date + time)函數(shù):now()
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),莊河企業(yè)網(wǎng)站建設(shè),莊河品牌網(wǎng)站建設(shè),網(wǎng)站定制,莊河網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,莊河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
除了 now() 函數(shù)能獲得當(dāng)前的日期時(shí)間外,MySQL 中還有下面的函數(shù):
current_timestamp() current_timestamp
localtime() localtime
localtimestamp() localtimestamp
這些日期時(shí)間函數(shù),都等同于 now()。鑒于 now() 函數(shù)簡(jiǎn)短易記,建議總是使用 now() 來(lái)替代上面列出的函數(shù)。
1.2 獲得當(dāng)前日期+時(shí)間(date + time)函數(shù):sysdate()
sysdate() 日期時(shí)間函數(shù)跟 now() 類(lèi)似,不同之處在于:now() 在執(zhí)行開(kāi)始時(shí)值就得到了, sysdate() 在函數(shù)執(zhí)行時(shí)動(dòng)態(tài)得到值。
2. 獲得當(dāng)前日期(date)函數(shù):curdate()
其中,下面的兩個(gè)日期函數(shù)等同于 curdate(): current_date(),current_date
3. 獲得當(dāng)前時(shí)間(time)函數(shù):curtime()
其中,下面的兩個(gè)時(shí)間函數(shù)等同于 curtime():current_time(),current_time
4. 獲得當(dāng)前 UTC 日期時(shí)間函數(shù):utc_date(), utc_time(), utc_timestamp()
insert into 替換成你的表名 (name,date,value) values ('魂?duì)繅?mèng)縈','2009-06-08 23:53:17','朝秦暮楚');
如果你是直接在Mysql中操作的話(huà),建議你用下navcait for mysql,他界面操作完成后有一個(gè)查看代碼,這樣你既可以達(dá)到想要的功能,有能很快學(xué)到不懂的sql語(yǔ)句
這里是一個(gè)使用日期函數(shù)的例子。下面的查詢(xún)選擇了所有記錄,其date_col的值是在最后30天以?xún)?nèi):
mysql SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) = 30;
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對(duì)應(yīng)于ODBC標(biāo)準(zhǔn)。
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在一年中的日數(shù), 在1到366范圍內(nèi)。
mysql select DAYOFYEAR('1998-02-03');
- 34
MONTH(date)
返回date的月份,范圍1到12。
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一年中的季度,范圍1到4。
mysql select QUARTER('98-04-01');
- 2
WEEK(date)
WEEK(date,first)
對(duì)于星期天是一周的第一天的地方,有一個(gè)單個(gè)參數(shù),返回date的周數(shù),范圍在0到52。2個(gè)參數(shù)形式WEEK()允許
指定星期是否開(kāi)始于星期天或星期一。如果第二個(gè)參數(shù)是0,星期從星期天開(kāi)始,如果第二個(gè)參數(shù)是1,
從星期一開(kāi)始。
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的分鐘,范圍是0到59。
mysql select MINUTE('98-02-03 10:05:03');
- 5
SECOND(time)
回來(lái)time的秒數(shù),范圍是0到59。
mysql select SECOND('10:05:03');
- 3
PERIOD_ADD(P,N)
增加N個(gè)月到階段P(以格式Y(jié)YMM或YYYYMM)。以格式Y(jié)YYYMM返回值。注意階段參數(shù)P不是日期值。
mysql select PERIOD_ADD(9801,2);
- 199803
PERIOD_DIFF(P1,P2)
返回在時(shí)期P1和P2之間月數(shù),P1和P2應(yīng)該以格式Y(jié)YMM或YYYYMM。注意,時(shí)期參數(shù)P1和P2不是日期值。
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)
這些功能執(zhí)行日期運(yùn)算。對(duì)于MySQL 3.22,他們是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同義詞。
如果datetime_expr1,datetime_expr2是datetime類(lèi)型的話(huà)
select
time_format(timediff('2000:01:31
23:59:59',
'2000:01:01
00:00:00'),'%Hh%im')
也許可以滿(mǎn)足你的要求
取得當(dāng)前時(shí)間用 now() 就行。
在數(shù)據(jù)庫(kù)中格式化時(shí)間 用DATE_FORMA T(date, format) .
根據(jù)格式串format 格式化日期或日期和時(shí)間值date,返回結(jié)果串。
可用DATE_FORMAT( ) 來(lái)格式化DATE 或DATETIME 值,以便得到所希望的格式。根據(jù)format字符串格式化date值:
%S, %s 兩位數(shù)字形式的秒( 00,01, . . ., 59)
%i 兩位數(shù)字形式的分( 00,01, . . ., 59)
%H 兩位數(shù)字形式的小時(shí),24 小時(shí)(00,01, . . ., 23)
%h, %I 兩位數(shù)字形式的小時(shí),12 小時(shí)(01,02, . . ., 12)
%k 數(shù)字形式的小時(shí),24 小時(shí)(0,1, . . ., 23)
%l 數(shù)字形式的小時(shí),12 小時(shí)(1, 2, . . ., 12)
%T 24 小時(shí)的時(shí)間形式(h h : m m : s s)
%r 12 小時(shí)的時(shí)間形式(hh:mm:ss AM 或hh:mm:ss PM)
%p AM 或P M
%W 一周中每一天的名稱(chēng)( S u n d a y, Monday, . . ., Saturday)
%a 一周中每一天名稱(chēng)的縮寫(xiě)( Sun, Mon, . . ., Sat)
%d 兩位數(shù)字表示月中的天數(shù)( 00, 01, . . ., 31)
%e 數(shù)字形式表示月中的天數(shù)( 1, 2, . . ., 31)
%D 英文后綴表示月中的天數(shù)( 1st, 2nd, 3rd, . . .)
%w 以數(shù)字形式表示周中的天數(shù)( 0 = S u n d a y, 1=Monday, . . ., 6=Saturday)
%j 以三位數(shù)字表示年中的天數(shù)( 001, 002, . . ., 366)
% U 周(0, 1, 52),其中Sunday 為周中的第一天
%u 周(0, 1, 52),其中Monday 為周中的第一天
%M 月名(J a n u a r y, February, . . ., December)
%b 縮寫(xiě)的月名( J a n u a r y, February, . . ., December)
%m 兩位數(shù)字表示的月份( 01, 02, . . ., 12)
%c 數(shù)字表示的月份( 1, 2, . . ., 12)
%Y 四位數(shù)字表示的年份
%y 兩位數(shù)字表示的年份
%% 直接值“%”
select date_format(日期字段,’%Y-%m-%d’) as ‘日期’ from test
mysql兩個(gè)日期計(jì)算天數(shù)的計(jì)算有如下方式:
1、利用TO_DAYS函數(shù)
select to_days(now()) - to_days('19930908')
2、利用DATEDIFF函數(shù)
select datediff(now(),'19930908')
參數(shù)1 - 參數(shù)2 等于間隔天數(shù)
3、利用TIMESTAMPDIFF函數(shù)
計(jì)算兩日期時(shí)間之間相差的天數(shù),秒數(shù),分鐘數(shù),周數(shù),小時(shí)數(shù),這里主要分享的是通過(guò)MySql內(nèi)置的函數(shù) TimeStampDiff() 實(shí)現(xiàn)。
函數(shù) TimeStampDiff() 是MySQL本身提供的可以計(jì)算兩個(gè)時(shí)間間隔的函數(shù),語(yǔ)法為:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期時(shí)間表達(dá)式datetime_expr1 和datetime_expr2the 之間的整數(shù)差。其中unit單位有如下幾種,分別是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。該參數(shù)具體釋義如下:
FRAC_SECOND?? 表示間隔是毫秒
SECOND?? 秒
MINUTE?? 分鐘
HOUR?? 小時(shí)
DAY?? 天
WEEK?? 星期
MONTH?? 月
QUARTER?? 季度
YEAR?? 年
例如:
#計(jì)算兩日期之間相差多少周
select timestampdiff(week,'2011-09-30','2015-05-04');
#計(jì)算兩日期之間相差多少天
select timestampdiff(day,'2011-09-30','2015-05-04');