mysql中關于時間的函數(shù)使用教程

字號:


    UNIX_TIMESTAMP()
    UNIX_TIMESTAMP(date)
    如果沒有參數(shù)調用,返回一個Unix時間戳記(從’1970-01-01 00:00:00′GMT開始的秒數(shù))。如果UNIX_TIMESTAMP()用一
    個date參數(shù)被調用,它返回從’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’
    MySQL DATEDIFF() 函數(shù)
    定義和用法
    DATEDIFF() 函數(shù)返回兩個日期之間的天數(shù)。
    語法
    DATEDIFF(date1,date2)
    date1 和 date2 參數(shù)是合法的日期或日期/時間表達式。
    實例
    例子 1
    使用如下 SELECT 語句:
    SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
    結果:
    DiffDate
    1
    例子 2
    使用如下 SELECT 語句:
    SELECT DATEDIFF('2008-12-29','2008-12-30') AS DiffDate
    結果:
    DiffDate
    -1
    TO_DAYS:
    TO_DAYS是返回日期date的在一年中的天數(shù)索引。
    下面的查詢選擇了所有記錄,其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′);
    -> 5
    mysql> select WEEKDAY(’1997-11-05′);
    -> 2
    DAYOFMONTH(date)
    返回date的月份中日期,在1到31范圍內。
    mysql> select DAYOFMONTH(’1998-02-03′);
    -> 3
    DAYOFYEAR(date)
    返回date在一年中的日數(shù), 在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)
    對于星期天是一周的第一天的地方,有一個單個參數(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(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意階段參數(shù)P不是日期值。
    mysql> select PERIOD_ADD(9801,2);
    -> 199803
    PERIOD_DIFF(P1,P2)
    返回在時期P1和P2之間月數(shù),P1和P2應該以格式YYMM或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()的同義詞。