国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數據庫 > MySQL > 正文

mysql中常用日期比較與計算函數

2024-07-25 19:08:06
字體:
來源:轉載
供稿:網友

MySql中時間比較的實現

unix_timestamp()

unix_timestamp 函數可以接受一個參數,也可以不使用參數。

它的返回值是一個無符號的整數。不使用參數,它返回自1970年1月1日0時0分0秒到現在所經過的秒數,

如果 使用參數,參數的類型為時間類型或者時間類型的字符串表示,則是從1970-01-01 00:00:00到指定時間所經歷的秒數。

有了這個函數,就可以很自然地把時間比較轉換為一個無符號整數的比較。

例如,判斷一個時間是否在一個區間內

unix_timestamp( time ) between unix_timestamp( 'start ') and unix_timestamp( 'end' ) 

這里是一個使用日期函數的例子。

下面的查詢選擇了所有記錄,其date_col的值是在最后30天以內:

mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

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');-> 5mysql> select WEEKDAY('1997-11-05');-> 2 

DAYOFMONTH(date)

返回date的月份中日期,在1到31范圍內。

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

DAYOFYEAR(date)

返回date在一年中的日數, 在1到366范圍內。

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)

對于星期天是一周的第一天的地方,有一個單個參數,返回date的周數,范圍在0到52。2個參數形式WEEK()允許你指定星期是否開始于星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二個參數是1,從星期一開始。

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

YEAR(date)

返回date的年份,范圍在1000到9999。

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

HOUR(time)

返回time的小時,范圍是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)

回來time的秒數,范圍是0到59。

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

PERIOD_ADD(P,N)

增加N個月到階段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意階段參數P不是日期值。

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

PERIOD_DIFF(P1,P2)

返回在時期P1和P2之間月數,P1和P2應該以格式YYMM或YYYYMM。注意,時期參數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)

這些功能執行日期運算。對于MySQL 3.22,他們是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同義詞。

在MySQL 3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。(見例子)date是一個指定開始日期的DATETIME或DATE值,expr是指定加到開始日期或從開始日期減去的間隔值一個表達式,expr是一個字符串;它可以以一個“-”開始表示負間隔。type是一個關鍵詞,指明表達式應該如何被解釋。EXTRACT(type FROM date)函數從日期中返回“type”間隔。下表顯示了type和expr參數怎樣被關聯: 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"

MySQL在expr格式中允許任何標點分隔符。表示顯示的是建議的分隔符。如果date參數是一個DATE值并且你的計算僅僅包含YEAR、MONTH和DAY部分(即,沒有時間部分),結果是一個DATE值。否則結果是一個DATETIME值.

mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;-> 1998-01-01 00:00:00mysql> SELECT INTERVAL 1 DAY + "1997-12-31";-> 1998-01-01mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;-> 1997-12-31 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);-> 1998-01-01 00:00:00mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);-> 1998-01-01 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);-> 1998-01-01 00:01:00mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);-> 1997-12-30 22:58:59mysql> SELECT DATE_ADD("1998-01-01 00:00:00",INTERVAL "-1 10" DAY_HOUR);-> 1997-12-30 14:00:00mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);-> 1997-12-02mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");-> 1999mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");-> 199907mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");-> 20102

如果你指定太短的間隔值(不包括type關鍵詞期望的間隔部分),MySQL假設你省掉了間隔值的最左面部分。例如,

如果你指定一個type是DAY_SECOND,值expr被希望有天、小時、分鐘和秒部分。如果你象"1:10"這樣指定值,

MySQL假設日子和小時部分是丟失的并且值代表分鐘和秒。換句話說,"1:10" DAY_SECOND以它等價于"1:10"

MINUTE_SECOND 的方式解釋,這對那MySQL解釋TIME值表示經過的時間而非作為一天的時間的方式有二義性。如果你使用確實不正確的日期,

結果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且結果日期大于新月份的最大值天數,日子在新月用最大的天調整。

mysql> select DATE_ADD('1998-01-30', Interval 1 month);-> 1998-02-28

注意,從前面的例子中詞INTERVAL和type關鍵詞不是區分大小寫的。

TO_DAYS(date)

給出一個日期date,返回一個天數(從0年的天數)。

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

FROM_DAYS(N)

給出一個天數N,返回一個DATE值。

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

DATE_FORMAT(date,format)

根據format字符串格式化date值。下列修飾符可以被用在format字符串中: %M 月名字(January……December)

%W 星期名字(Sunday……Saturday)
%D 有英語前綴的月份的日期(1st, 2nd, 3rd, 等等)
%Y 年, 數字, 4 位
%y 年, 數字, 2 位
%a 縮寫的星期名字(Sun……Sat)
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(Jan……Dec)
%j 一年中的天數(001……366)
%H 小時(00……23)
%k 小時(0……23)
%h 小時(01……12)
%I 小時(01……12)
%l 小時(1……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [AP]M)
%T 時間,24 小時(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一個星期中的天數(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'

MySQL3.23中,在格式修飾符字符前需要%。在MySQL更早的版本中,%是可選的。

TIME_FORMAT(time,format)

這象上面的DATE_FORMAT()函數一樣使用,但是format字符串只能包含處理小時、分鐘和秒的那些格式修飾符。其他修飾符產生一個NULL值或0。

CURDATE()

CURRENT_DATE以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取決于函數是在一個字符串還是數字上下文被使用。

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

CURTIME()

CURRENT_TIME

以'HH:MM:SS'或HHMMSS格式返回當前時間值,取決于函數是在一個字符串還是在數字的上下文被使用。

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

NOW()

SYSDATE()

CURRENT_TIMESTAMP 以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回當前的日期和時間,取決于函數是在一個字符串還是在數字的上下文被使用。

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開始的秒數)。如果UNIX_TIMESTAMP()用一 個date參數被調用,它返回從'1970-01-01 00:00:00' GMT開始的秒數值。date可以是一個DATE字符串、一個DATETIME 字符串、一個TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地時間的一個數字。

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

當UNIX_TIMESTAMP被用于一個TIMESTAMP列,函數將直接接受值,沒有隱含的“string-to-unix-timestamp”變換。

FROM_UNIXTIME(unix_timestamp)

以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp參數所表示的值,取決于函數是在一個字符串
還是或數字上下文中被使用。

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

FROM_UNIXTIME(unix_timestamp,format)

返回表示 Unix 時間標記的一個字符串,根據format字符串格式化。format可以包含與DATE_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)

返回seconds參數,變換成小時、分鐘和秒,值以'HH:MM:SS'或HHMMSS格式化,取決于函數是在一個字符串還是在數字 上下文中被使用。

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');-> 80580mysql> select TIME_TO_SEC('00:39:38');-> 2378

Mysql的日期函數很多,用作日期比較的函數有時并不一定是一個函數有可能是多個函數組合在一起使用,所以大家要發揮自己的想像力


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
精品女厕厕露p撒尿| 五月综合网站| 国产69精品久久app免费版| 在线免费观看高清视频色| 99爱在线观看| 欧洲有码在线视频| 狠狠插狠狠操| 国产精品入口免费麻豆| 精品国产二区三区| 亚洲尤物在线视频| а天堂8中文最新版在线官网| av免费在线观看网站| 国产色在线 com| 香蕉视频免费在线播放| 亚洲图区综合| 日本高清中文字幕| 激情综合丁香| 成人免费一区二区三区视频网站| 国产农村av| 在线播放国产区| 国产免费av在线| 亚洲an天堂an在线观看| 成人福利视频导航| 超碰97在线免费观看| 国产娇喘精品一区二区三区图片| 亚洲精品白浆| 国产精品入口麻豆免费观看| 青青免费在线视频| 亚洲电影先锋| 91麻豆福利| 国产香蕉在线| 狠狠干天天爱| av福利在线| 国产区视频在线| 中文字幕专区| 国产免费av在线| 成人精品福利| 国产在线中文字幕| 日本一级理论片在线大全| 国产成人va亚洲电影| 天堂在线看视频| 高潮毛片在线观看| 国产免费人人看| 成人欧美精品久久久久影院| 青青青青在线| 麻豆视频在线观看免费网站| eeuss影院在线| 国产porn在线| 99色在线观看| 午夜在线不卡| 九色成人在线| 在线91av| 国产精品被窝福利一区 | 夜夜爽视频导航| 97在线超碰| 亚洲欧美国产另类首页| 在线免费黄色毛片| 亚洲精品乱码电影在线观看| 日本片在线看| 国产精品一区牛牛影视| 国产人成精品| 91久久精品国产性色| 亚洲第一成年免费网站| 黄色三级视频在线观看| 成网站在线观看人免费| 国产成人综合亚洲欧美在| 91青青在线视频| 四虎精品视频| 国产在线播放av| 国产www视频在线观看| 夜夜爽视频导航| 国产精品自产拍在线网站| 2020国产在线视频| 久久91精品视频| 亚洲综合在线不卡| 国产天堂在线观看| 日韩精品免费一区二区| 中中文字幕av在线| www.久草.com| 国产福利在线| 国产原创在线播放| 亚洲国产成人综合| 国产视频一二三区| 免费精品国产自产拍观看| 国产高清在线观看| 毛片在线视频| 在线观看的av网站| 国产va在线| 国产一区二区三区四区尤物| 久久99亚洲网美利坚合众国| 在线黄色av| 国产私人影院| 国产小视频福利在线| 黄色电影网站在线观看| 亚洲v片在线观看| 伊人国产在线看一| 91精选福利| 精品99又大又爽又硬少妇毛片| 日本中文字幕高清视频| 狠狠干天天爱| 国产中文第一页| 青青草免费在线视频| av在线不卡网站| 亚洲综合激情六月婷婷在线观看 | 国产午夜在线视频| 天堂亚洲精品| 国产偷激情在线| 国产黄色片大全| 99色在线观看| 老司机精品视频一区二区| 青青草免费在线视频| 天海翼中文字幕| 欧美亚洲天堂| 国产主播福利在线| 五月天天在线| 国产网站av| 中文产幕区在线观看| 国产传媒在线播放| 99色在线视频| 国产精品日日爱| 午夜在线视频播放| 国产乱xxⅹxx国语对白| 国产黄色片大全| 亚洲欧美小说国产图片| www.中文字幕久久久| 成人午夜无人区一区二区| 国产小视频在线播放| 精品卡一卡卡2卡3网站| 欧美国产中文| 国产欧美在线观看视频| 性网站在线观看| 国产一级在线观看www色| 国产不卡一卡2卡三卡4卡5卡在线| 国产三区四区在线观看| 亚洲sss视频| 国产无套粉嫩白浆在线2022年| 精品视频麻豆入口| 导航福利在线| 亚洲欧美国产另类首页| 国产精品天堂| 日本高清不卡中文字幕| 国产xxx在线| 中文字幕在线视频观看| eeuss影院网站免费观看| 国产精品美女视频免费观看软件| free性亚洲| 国产不卡一卡2卡三卡4卡5卡在线| 亚洲大香人伊一本线| 国产一卡2卡3卡四卡网站| 欧美国产中文| av免费在线观看网站| 国产色在线 com| 国产裸舞福利在线视频合集| 日本高清中文字幕| 四虎成人欧美精品在永久在线| 国产91在线视频蝌蚪| 国产精品va在线观看视色| 国自产拍在线网站网址视频| 青青草视频在线免费观看| www.91av| 超碰免费在线观看| 九九热在线观看| 久久国产热视频| 性网站在线播放| h视频在线网站| 日本韩国精品一区二区| 思思99精品视频在线观看| 精品视频一二区| 精品美女在线观看视频在线观看 | 99reav| 97影院理论午夜| 18激情网站| 在线视频1区2区| 亚洲大香人伊一本线| 亚洲欧美一区二区三区在线播放| 99热播在线观看| 欧美精品久久久久久久小说| 亚洲xxxxxx| 成人精品福利| 国产精品国产国产aⅴ| 一级黄色av| 国产有码在线| 国产高清免费av在线| 在线视频福利| 高潮毛片在线观看| 国产盗摄精品一区二区酒店| 国产高清自拍视频在线观看 | 99热播在线观看| 天堂中文在线观看| 国产免费一级| 992tv在线观看在线播放| 日本在线观看| 国产污视频在线| 超碰91在线| 国产福利视频在线观看| 黄网在线免费| 中文字幕2020第一页| 玖玖在线视频| av中文在线| 国产福利电影在线观看|