<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Mysql日期和時間函數(shù)

    Posted on 2006-10-13 11:25 my 閱讀(170) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫方面
    對于每個類型擁有的值范圍以及并且指定日期何時間值的有效格式的描述見7.3.6?日期和時間類型。?

    這里是一個使用日期函數(shù)的例子。下面的查詢選擇了所有記錄,其date_col的值是在最后30天以內(nèi):?

    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');?
    ->?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)?
    對于星期天是一周的第一天的地方,有一個單個參數(shù),返回date的周數(shù),范圍在0到52。2個參數(shù)形式WEEK()允許
    你指定星期是否開始于星期天或星期一。如果第二個參數(shù)是0,星期從星期天開始,如果第二個參數(shù)是1,
    從星期一開始。?
    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的小時,范圍是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的秒數(shù),范圍是0到59。?
    mysql>?select?SECOND('10:05:03');?
    ->?3?

    PERIOD_ADD(P,N)?
    增加N個月到階段P(以格式Y(jié)YMM或YYYYMM)。以格式Y(jié)YYYMM返回值。注意階段參數(shù)P不是日期值。?
    mysql>?select?PERIOD_ADD(9801,2);?
    ->?199803?

    PERIOD_DIFF(P1,P2)?
    返回在時期P1和P2之間月數(shù),P1和P2應該以格式Y(jié)YMM或YYYYMM。注意,時期參數(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í)行日期運算。對于MySQL?3.22,他們是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同義詞。
    在MySQL?3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。(見例子)date是一個指定開始日期的
    DATETIME或DATE值,expr是指定加到開始日期或從開始日期減去的間隔值一個表達式,expr是一個字符串;它可以以
    一個“-”開始表示負間隔。type是一個關(guān)鍵詞,指明表達式應該如何被解釋。EXTRACT(type?FROM?date)函數(shù)從日期
    中返回“type”間隔。下表顯示了type和expr參數(shù)怎樣被關(guān)聯(lián):?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參數(shù)是一個DATE值并且你的計算僅僅
    包含YEAR、MONTH和DAY部分(即,沒有時間部分),結(jié)果是一個DATE值。否則結(jié)果是一個DATETIME值。?

    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?

    如果你指定太短的間隔值(不包括type關(guān)鍵詞期望的間隔部分),MySQL假設你省掉了間隔值的最左面部分。例如,
    如果你指定一個type是DAY_SECOND,值expr被希望有天、小時、分鐘和秒部分。如果你象"1:10"這樣指定值,
    MySQL假設日子和小時部分是丟失的并且值代表分鐘和秒。換句話說,"1:10"?DAY_SECOND以它等價于"1:10"?MINUTE_SECOND
    的方式解釋,這對那MySQL解釋TIME值表示經(jīng)過的時間而非作為一天的時間的方式有二義性。如果你使用確實不正確的日期,
    結(jié)果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且結(jié)果日期大于新月份的最大值天數(shù),日子在新月用最大的天調(diào)整。?

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

    注意,從前面的例子中詞INTERVAL和type關(guān)鍵詞不是區(qū)分大小寫的。?
    TO_DAYS(date)?
    給出一個日期date,返回一個天數(shù)(從0年的天數(shù))。?
    mysql>?select?TO_DAYS(950501);?
    ->?728779?
    mysql>?select?TO_DAYS('1997-10-07');?
    ->?729669?

    TO_DAYS()不打算用于使用格列高里歷(1582)出現(xiàn)前的值。?

    FROM_DAYS(N)?
    給出一個天數(shù)N,返回一個DATE值。?
    mysql>?select?FROM_DAYS(729669);?
    ->?'1997-10-07'?

    TO_DAYS()不打算用于使用格列高里歷(1582)出現(xiàn)前的值。?

    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),?這里星期一是星期的第一天?
    %%?一個文字“%”。?

    所有的其他字符不做解釋被復制到結(jié)果中。?

    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()函數(shù)一樣使用,但是format字符串只能包含處理小時、分鐘和秒的那些格式修飾符。
    其他修飾符產(chǎn)生一個NULL值或0。?
    CURDATE()?
     ?
    CURRENT_DATE?
    以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取決于函數(shù)是在一個字符串還是數(shù)字上下文被使用。?
    mysql>?select?CURDATE();?
    ->?'1997-12-15'?
    mysql>?select?CURDATE()?+?0;?
    ->?19971215?

    CURTIME()?
     ?
    CURRENT_TIME?
    以'HH:MM:SS'或HHMMSS格式返回當前時間值,取決于函數(shù)是在一個字符串還是在數(shù)字的上下文被使用。?
    mysql>?select?CURTIME();?
    ->?'23:50:26'?
    mysql>?select?CURTIME()?+?0;?
    ->?235026?

    NOW()?
     ?
    SYSDATE()?
     ?
    CURRENT_TIMESTAMP?
    以'YYYY-MM-DD?HH:MM:SS'或YYYYMMDDHHMMSS格式返回當前的日期和時間,取決于函數(shù)是在一個字符串還是在數(shù)字的
    上下文被使用。?
    mysql>?select?NOW();?
    ->?'1997-12-15?23:50:26'?
    mysql>?select?NOW()?+?0;?
    ->?19971215235026?

    UNIX_TIMESTAMP()?
     ?
    UNIX_TIMESTAMP(date)?
    如果沒有參數(shù)調(diào)用,返回一個Unix時間戳記(從'1970-01-01?00:00:00'GMT開始的秒數(shù))。如果UNIX_TIMESTAMP()用一
    個date參數(shù)被調(diào)用,它返回從'1970-01-01?00:00:00'?GMT開始的秒數(shù)值。date可以是一個DATE字符串、一個DATETIME
    字符串、一個TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地時間的一個數(shù)字。?
    mysql>?select?UNIX_TIMESTAMP();?
    ->?882226357?
    mysql>?select?UNIX_TIMESTAMP('1997-10-04?22:23:00');?
    ->?875996580?

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

    FROM_UNIXTIME(unix_timestamp)?
    以'YYYY-MM-DD?HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp參數(shù)所表示的值,取決于函數(shù)是在一個字符串
    還是或數(shù)字上下文中被使用。?
    mysql>?select?FROM_UNIXTIME(875996580);?
    ->?'1997-10-04?22:23:00'?
    mysql>?select?FROM_UNIXTIME(875996580)?+?0;?
    ->?19971004222300?

    FROM_UNIXTIME(unix_timestamp,format)?
    返回表示?Unix?時間標記的一個字符串,根據(jù)format字符串格式化。format可以包含與DATE_FORMAT()函數(shù)列出的條
    目同樣的修飾符。?
    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參數(shù),變換成小時、分鐘和秒,值以'HH:MM:SS'或HHMMSS格式化,取決于函數(shù)是在一個字符串還是在數(shù)字
    上下文中被使用。?
    mysql>?select?SEC_TO_TIME(2378);?
    ->?'00:39:38'?
    mysql>?select?SEC_TO_TIME(2378)?+?0;?
    ->?3938?

    TIME_TO_SEC(time)?
    返回time參數(shù),轉(zhuǎn)換成秒。?
    mysql>?select?TIME_TO_SEC('22:23:00');?
    ->?80580?
    mysql>?select?TIME_TO_SEC('00:39:38');?
    ->?2378

    posts - 63, comments - 45, trackbacks - 0, articles - 99

    Copyright © my

    主站蜘蛛池模板: 最近中文字幕免费mv视频8| 亚洲综合校园春色| 日韩在线视频播放免费视频完整版 | 99re免费在线视频| 毛片无码免费无码播放| 亚洲AV无码国产精品色午友在线| 久久久WWW免费人成精品| 婷婷亚洲综合一区二区| 国产免费午夜a无码v视频| 色欲色欲天天天www亚洲伊| 国产zzjjzzjj视频全免费| 男男gvh肉在线观看免费| 亚洲午夜AV无码专区在线播放 | 久久久久精品国产亚洲AV无码| **一级毛片免费完整视| 亚洲AV无码一区二区三区人| 在人线av无码免费高潮喷水| 亚洲第一成年网站视频| 亚洲黄片毛片在线观看| 你懂的网址免费国产| 99久久亚洲精品无码毛片| 成人在线免费看片| 午夜亚洲WWW湿好爽| 亚洲熟妇无码AV在线播放| 99精品视频在线视频免费观看| 亚洲在成人网在线看| 午夜一区二区免费视频| 国产精品1024在线永久免费| 亚洲av色影在线| 成年女人免费v片| 国产va免费精品| 亚洲视频在线观看网址| 日韩a级毛片免费观看| 亚洲国产人成网站在线电影动漫| 免费观看美女用震蛋喷水的视频| 亚洲人成人伊人成综合网无码| 亚洲乱码中文字幕手机在线 | 视频免费1区二区三区| 亚洲AV成人精品网站在线播放 | 国产亚洲老熟女视频| 在线视频免费国产成人|