多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

sql教程

SQL 教程

SQL 高級教程

SQL 函數

  • SQL 主機
  • SQL 總結
  • 實例/測驗

    拓展閱讀

    SQL 日期函數

    閱讀 (2232)

    SQL 日期函數

    下面的列表中是 SQL 中所有與日期和時間相關的重要函數。你所用的 RDBMS 可能會支持更多其他的函數。下面的列表基于 MySQL 關系型數據庫管理系統。

    名稱 描述
    ADDDATE() 增加日期
    ADDTIME() 增加時間
    CONVERT_TZ() 將當前時區更改為另一時區
    CURDATE() 返回當前日期
    CURRENT_DATE(), CURRENT_DATE CURDATE() 的別名
    CURRENT_TIME(), CURRENT_TIME CURTIME() 的別名
    CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP NOW() 的別名
    CURTIME() 返回當前時間
    DATE_ADD() 將兩個日期相加
    DATE_FORMAT() 按照指定格式格式化日期
    DATE_SUB() 將兩個日期相減
    DATE() 從 date 或者 datetime 表達式中提取出日期部分
    DATEDIFF() 將兩個日期相減
    DAY() DAYOFMONTH() 的別名
    DAYNAME() 返回某天在用星期中的名稱
    DAYOFMONTH() 返回某天是當月的第幾天 (1-31)
    DAYOFWEEK() 返回某天是該星期的第幾天
    DAYOFYEAR() 返回某天是一年中的第幾天(1-366)
    EXTRACT 提取日期中的某一部分
    FROM_DAYS() 將天數轉換為日期
    FROM_UNIXTIME() 將某個日期格式化為 UNIX 時間戳
    HOUR() 提取小時
    LAST_DAY 返回參數日期所在月份的最后一天
    LOCALTIME(), LOCALTIME NOW() 的別名
    LOCALTIMESTAMP, LOCALTIMESTAMP() NOW() 的別名
    MAKEDATE() 利用年份和某天在該年所處的天數來創建日期
    MAKETIME MAKETIME()
    MICROSECOND() 由參數返回微秒
    MINUTE() 由參數返回分鐘
    MONTH() 返回日期參數的月份
    MONTHNAME() 返回月份的名字
    NOW() 返回當前日期和時間
    PERIOD_ADD() 向年月格式的日期數據之間添加一段時間
    PERIOD_DIFF() 返回兩個年月格式的日期數據之間的月份數
    QUARTER() 返回日期參數所在的季度
    SEC_TO_TIME() 將秒數轉換為 'HH:MM:SS' 格式
    SECOND() 返回參數中的秒數 (0-59)
    STR_TO_DATE() 將字符串轉換為日期數據
    SUBDATE() 以三個參數調用的時候是 DATE_SUB() 的同義詞
    SUBTIME() 減去時間
    SYSDATE() 返回函數執行的時的時刻
    TIME_FORMAT() 格式化時間
    TIME_TO_SEC() 將時間參數轉換為秒數
    TIME() 返回參數表達式中的時間部分
    TIMEDIFF() 將兩個時間相減
    TIMESTAMP() 只有一個參數時,該函數返回 date 或者 datetime 表達式。當有兩個參數時,將兩個參數相加。
    TIMESTAMPADD() 在 datetime 表達式上加上一段時間
    TIMESTAMPDIFF() 在 datetime 表達式上減去一段時間
    TO_DAYS() 將日期參數轉換為天數
    UNIX_TIMESTAMP() 返回 UNIX 時間戳
    UTC_DATE() 返回當前 UTC 日期
    UTC_TIME() 返回當前 UTC 時間
    UTC_TIMESTAMP() 返回當前 UTC 日期和時間
    WEEK() 返回參數的星期數
    WEEKDAY() 返回日期參數時一個星期中的第幾天
    WEEKOFYEAR() 返回日期參數是日歷上的第幾周 (1-53)
    YEAR() 返回日期參數中的年份
    YEARWEEK() 返回年份和星期

    ADDDATE(date, INTERVAL expr unit), ADDDATE(expr, days)

    如果調用時第二個參數為 INTERVAL 形式的話,ADDDATE() 就是 DATE_ADD() 的同義詞。同樣的情況下,SUBDATE() 是 DATE_SUB() 的同義詞。有關 INTERVAL 單位參數的信息,見有關 DATE_ADD() 的討論。

    mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
    +---------------------------------------------------------+
    | DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
    +---------------------------------------------------------+
    | 1998-02-02                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
    +---------------------------------------------------------+
    | ADDDATE('1998-01-02', INTERVAL 31 DAY)                  |
    +---------------------------------------------------------+
    | 1998-02-02                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    如果調用時第二個參數為天數形式的話,則 MySQL 會將其作為整數加到 expr 上。

    mysql> SELECT ADDDATE('1998-01-02', 31);
    +---------------------------------------------------------+
    | DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
    +---------------------------------------------------------+
    | 1998-02-02                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    ADDTIME(expr1,expr2)

    ADDTIME() 將 expr2 加到 expr1 上,并返回結果。expr1 為 time 或者 datetime 表達式,expr2 為 time 表達式。

    mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
    +---------------------------------------------------------+
    | DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
    +---------------------------------------------------------+
    | 1998-01-02 01:01:01.000001                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    CONVERT_TZ(dt,from_tz,to_tz)

    該函數將 datetime 類型的值 dt 的時區從 from_dt 轉換為 to_dt,并返回結果。如果參數無效,則函數返回 NULL。

    mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
    +---------------------------------------------------------+
    | CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')           |
    +---------------------------------------------------------+
    | 2004-01-01 13:00:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
    +---------------------------------------------------------+
    | CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')     |
    +---------------------------------------------------------+
    | 2004-01-01 22:00:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    CURDATE()

    以 'YYYY-MM-DD'(字符串) 或者 YYYYMMDD(數值) 的形式返回當前日期, 具體形式取決于函數處于字符串還是數值型的上下文環境中。

    mysql> SELECT CURDATE();
    +---------------------------------------------------------+
    | CURDATE()                                               |
    +---------------------------------------------------------+
    | 1997-12-15                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT CURDATE() + 0;
    +---------------------------------------------------------+
    | CURDATE() + 0                                           |
    +---------------------------------------------------------+
    | 19971215                                                |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    CURRENT_DATE and CURRENT_DATE()

    CURRENT_DATE 和 CURRENT_DATE() 是 CURDATE() 的別名。

    CURTIME()

    以 'HH:MM:SS'(字符串) 或者 HHMMSS(數值) 的形式返回當前時間, 具體形式取決于函數處于字符串還是數值型的上下文環境中。該函數按照當前時區來表示返回值。

    mysql> SELECT CURTIME();
    +---------------------------------------------------------+
    | CURTIME()                                               |
    +---------------------------------------------------------+
    | 23:50:26                                                |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT CURTIME() + 0;
    +---------------------------------------------------------+
    | CURTIME() + 0                                           |
    +---------------------------------------------------------+
    | 235026                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    CURRENT_TIME and CURRENT_TIME()

    CURRENT_TIME 和 CURRENT_TIME() 是 CURTIME() 的別名。

    CURRENT_TIMESTAMP and CURRENT_TIMESTAMP()

    CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP() 是 NOW() 的別名。

    DATE(expr)

    提取 date 表達式或者 datetime 表達式中的日期部分。

    mysql> SELECT DATE('2003-12-31 01:02:03');
    +---------------------------------------------------------+
    | DATE('2003-12-31 01:02:03')                             |
    +---------------------------------------------------------+
    |  2003-12-31                                             |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DATEDIFF(expr1,expr2)

    DATEDIFF() 返回 expr1 和 expr2 的差,以天數的形式表示。expr1 和 expr2 應為 date 或者 datetime 表達式。只有參數的日期部分參與了計算。

    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
    +---------------------------------------------------------+
    | DATEDIFF('1997-12-31 23:59:59','1997-12-30')            |
    +---------------------------------------------------------+
    | 1                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)

    這些函數進行有關日期的算術運算。date 是一個 DATETIME 或者 DATE 類型的值,指明了起始時間。expr 表達式則是 date 要增加或者減去的時間間隔。expr 是一個字符串,可以以 '-' 開始來表示負時間區間。 unit 是一個關鍵詞,指明了expr 的單位。

    INTERVAL 關鍵字和 unit(單位)指示符不區分大小寫。

    下表列出了對于每種單位,expr 應有的形式。

    unit 值 expr 應有的格式
    MICROSECOND 微秒
    SECOND
    MINUTE 分鐘
    HOUR 小時
    DAY
    WEEK 星期
    MONTH
    QUARTER 季度
    YEAR
    SECOND_MICROSECOND '秒.微秒'
    MINUTE_MICROSECOND '分.微秒'
    MINUTE_SECOND '分:秒'
    HOUR_MICROSECOND '小時.微秒'
    HOUR_SECOND '時:分:秒'
    HOUR_MINUTE '時:分'
    DAY_MICROSECOND '天.微秒'
    DAY_SECOND '天 時:分:秒'
    DAY_MINUTE '天 時:分'
    DAY_HOUR '天 時'
    YEAR_MONTH '年-月'

    QUARTER 和 WEEK 自 MySQL 5.0.0 起受到支持。

    mysql> SELECT DATE_ADD('1997-12-31 23:59:59', 
        -> INTERVAL '1:1' MINUTE_SECOND);
    +---------------------------------------------------------+
    | DATE_ADD('1997-12-31 23:59:59', INTERVAL...             |
    +---------------------------------------------------------+
    | 1998-01-01 00:01:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
    +---------------------------------------------------------+
    | DATE_ADD('1999-01-01', INTERVAL 1 HOUR)                 |
    +---------------------------------------------------------+
    | 1999-01-01 01:00:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DATE_FORMAT(date,format)

    根據格式字符串對日期值進行格式化。

    下面這些占位符可以用在格式字符串中,'%' 必須出現在特定的格式字符之前。

    占位符 描述
    %a 簡寫的星期名稱(Sun..Sat)
    %b 簡寫的月份名稱 (Jan..Dec)
    %c 月份,以數值形式表示(0..12)
    %D 月份中的日期,帶有英文后綴(0th,1st,2nd,3rd 等等)
    %d 月份中的日期,以數值表示 (00..31)
    %e 月份中的日期,以數值表示 (0..31)
    %f 微秒(000000..999999)
    %H 小時(00..23)
    %h 小時(01..12)
    %I 小時(01..12)
    %i 分鐘,以數值表示(00..59)
    %j 一年中的第幾天(001..366)
    %k 小時(0..23)
    %l 小時(1..12)
    %M 月份的名稱(January..December)
    %m 月份,以數值形式表示(00..12)
    %p AM 或者 PM
    %r 時間,12 小時制(hh:mm:ss followed by AM or PM)
    %S 秒(00..59)
    %s 秒(00..59)
    %T 時間,24小時制(hh:mm:ss)
    %U 星期(00..53),此處星期日為一周的第一天
    %u 星期(00..53),此處星期一為一周的第一天
    %V 星期(01..53),此處星期日為一周的第一天;與 %X 一起使用。
    %v 星期(01..53),此處星期一為一周的第一天;與 %x 一起使用。
    %W 一周中日期的名稱(Sunday..Saturday)
    %w 一周中的第幾天(0=Sunday..6=Saturday)
    %X 以星期日為第一天的周所處的年份,四位數字表示;同 %V 一起使用。
    %x 以星期一為第一天的周所處的年份,四位數字表示;同 %v 一起使用。
    %Y 年份,四位數字表示。
    %y 年份,兩位數字表示。
    %% % 字面值
    %x x,針對任何以上沒有列出的情況。
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
    +---------------------------------------------------------+
    | DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')          |
    +---------------------------------------------------------+
    | Saturday October 1997                                   |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
        -> '%H %k %I %r %T %S %w');
    +---------------------------------------------------------+
    | DATE_FORMAT('1997-10-04 22:23:00.......                 |
    +---------------------------------------------------------+
    |  22 22 10 10:23:00 PM 22:23:00 00 6                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DATE_SUB(date,INTERVAL expr unit)

    同 DATE_ADD() 函數相似。

    DAY(date)

    DAY() 是 DAYOFMONTH() 的別名。

    DAYNAME(date)

    返回 date 在星期中的名稱。

    mysql> SELECT DAYNAME('1998-02-05');
    +---------------------------------------------------------+
    | DAYNAME('1998-02-05')                                   |
    +---------------------------------------------------------+
    | Thursday                                                |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DAYOFMONTH(date)

    返回 date 是當月的第幾天,范圍為 0 到 31。

    mysql> SELECT DAYOFMONTH('1998-02-03');
    +---------------------------------------------------------+
    | DAYOFMONTH('1998-02-03')                                |
    +---------------------------------------------------------+
    | 3                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DAYOFWEEK(date)

    返回 date 是其所在星期的第幾天(1 = Sunday, 2 = Monday,.., 7 = Saturday),這里一星期中日期的名稱與數字的對應關系符合 ODBC 標準。

    mysql> SELECT DAYOFWEEK('1998-02-03');
    +---------------------------------------------------------+
    |DAYOFWEEK('1998-02-03')                                  |
    +---------------------------------------------------------+
    | 3                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    DAYOFYEAR(date)

    返回 date 是當年的第幾天,范圍為 1 到 366。

    mysql> SELECT DAYOFYEAR('1998-02-03');
    +---------------------------------------------------------+
    | DAYOFYEAR('1998-02-03')                                 |
    +---------------------------------------------------------+
    | 34                                                      |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    EXTRACT(unit FROM date)

    EXTRACT() 與 DATE_ADD() 和 DATE_SUB() 使用相同的表示單位的占位符,其作用是提取日期值中相應的組成部分,而不是進行日期運算。

    mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
    +---------------------------------------------------------+
    | EXTRACT(YEAR FROM '1999-07-02')                         |
    +---------------------------------------------------------+
    | 1999                                                    |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
    +---------------------------------------------------------+
    | EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03')          |
    +---------------------------------------------------------+
    | 199907                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    FROM_DAYS(N)

    給出天數 N,返回 DATE 值。

    mysql> SELECT FROM_DAYS(729669);
    +---------------------------------------------------------+
    | FROM_DAYS(729669)                                       |
    +---------------------------------------------------------+
    | 1997-10-07                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    在使用 FROM_DAYS() 處理比較老的日期的時候應當特別小心,該函數不適用于格里高利歷誕生(1582)之前的日期。

    FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

    返回 UNIX 時間戳對應的日期值,根據函數所處的上下文環境不同,返回值得格式也不同,字符串上下文返回格式為 'YYYY-MM-DD HH:MM:SS',數值型上下文返回格式則為 YYYYMMDDHHMMSS。返回值的時區為系統當前時區。UNIX 時間戳是一種系統內部時間表示,例如 UNIX_TIMESTAMP() 的返回值。

    如果給定格式的話,返回結果將會根據格式字符串進行格式化,其規則同 DATE_FORMAT() 函數。

    mysql> SELECT FROM_UNIXTIME(875996580);
    +---------------------------------------------------------+
    | FROM_UNIXTIME(875996580)                                |
    +---------------------------------------------------------+
    | 1997-10-04 22:23:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    HOUR(time)

    返回時間值的小時部分。對于一天中的時間來說,返回值的范圍為 0 到 23。不過,TIME 類型的值可以大得多,所以 HOUR 函數可以返回比 23 大的值。

    mysql> SELECT HOUR('10:05:03');
    +---------------------------------------------------------+
    | HOUR('10:05:03')                                        |
    +---------------------------------------------------------+
    | 10                                                      |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    LAST_DAY(date)

    返回 date 或者 datetime 值所在月份的最后一天。如果參數無效的話,返回 NULL。

    mysql> SELECT LAST_DAY('2003-02-05');
    +---------------------------------------------------------+
    | LAST_DAY('2003-02-05')                                  |
    +---------------------------------------------------------+
    | 2003-02-28                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    LOCALTIME and LOCALTIME()

    LOCALTIME 和 LOCALTIME() 是 NOW() 的別名。

    LOCALTIMESTAMP and LOCALTIMESTAMP()

    LOCALTIMESTAMP 和 LOCALTIMESTAMP() 是 NOW() 的別名。

    MAKEDATE(year,dayofyear)

    給定年份和(某天在一年中)的天數,返回對應的日期值。天數必須大于 0,否則返回值為 NULL。

    mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
    +---------------------------------------------------------+
    | MAKEDATE(2001,31), MAKEDATE(2001,32)                    |
    +---------------------------------------------------------+
    | '2001-01-31', '2001-02-01'                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    MAKETIME(hour,minute,second)

    根據參數給出的時、分、秒,返回對應的時間值。

    mysql> SELECT MAKETIME(12,15,30);
    +---------------------------------------------------------+
    | MAKETIME(12,15,30)                                      |
    +---------------------------------------------------------+
    | '12:15:30'                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    MICROSECOND(expr)

    根據 time 或者 datetime 表達式 expr,返回微秒數,結果在 0 到 999999 之間。

    mysql> SELECT MICROSECOND('12:00:00.123456');
    +---------------------------------------------------------+
    | MICROSECOND('12:00:00.123456')                          |
    +---------------------------------------------------------+
    | 123456                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    MINUTE(time)

    返回時間型值中的分鐘部分,范圍為 0 到 59。

    mysql> SELECT MINUTE('98-02-03 10:05:03');
    +---------------------------------------------------------+
    | MINUTE('98-02-03 10:05:03')                             |
    +---------------------------------------------------------+
    | 5                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    MONTH(date)

    返回日期型值中的月份,范圍為 0 到 12。

    mysql> SELECT MONTH('1998-02-03')
    +---------------------------------------------------------+
    | MONTH('1998-02-03')                                     |
    +---------------------------------------------------------+
    | 2                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    MONTHNAME(date)

    返回日期型值所處月份的全名。

    mysql> SELECT MONTHNAME('1998-02-05');
    +---------------------------------------------------------+
    | MONTHNAME('1998-02-05')                                 |
    +---------------------------------------------------------+
    | February                                                |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    NOW()

    返回當前的日期和時間,結果的格式為 'YYYY-MM-DD HH:MM:SS' 或者 YYYYMMDDHHMMSS,如果函數上下文環境為字符型,則返回前者,否則如果函數處于數值型的上下文環境,則返回后者。返回值的時區為系統當前時區。

    mysql> SELECT NOW();
    +---------------------------------------------------------+
    | NOW()                                                   |
    +---------------------------------------------------------+
    | 1997-12-15 23:50:26                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    PERIOD_ADD(P,N)

    在時間 P(格式為 YYMM 或者 YYYYMM)上加上 N 個月,結果格式為 YYYYMM。注意,時間參數 P 并不是日期型值。

    mysql> SELECT PERIOD_ADD(9801,2);
    +---------------------------------------------------------+
    | PERIOD_ADD(9801,2)                                      |
    +---------------------------------------------------------+
    | 199803                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    PERIOD_DIFF(P1,P2)

    返回時間 P1 和 P2 之間相差的月份。 P1 和 P2 的格式應為 YYMM 或者 YYYYMM。注意I,P1 和 P2 不是日期型值。

    mysql> SELECT PERIOD_DIFF(9802,199703);
    +---------------------------------------------------------+
    | PERIOD_DIFF(9802,199703)                                |
    +---------------------------------------------------------+
    | 11                                                      |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    QUARTER(date)

    返回日期型值 date 所處的季度值,范圍為 1 到 4。

    mysql> SELECT QUARTER('98-04-01');
    +---------------------------------------------------------+
    | QUARTER('98-04-01')                                     |
    +---------------------------------------------------------+
    | 2                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    SECOND(time)

    返回時間型值中秒的部分,范圍為 0 到 59。

    mysql> SELECT SECOND('10:05:03');
    +---------------------------------------------------------+
    | SECOND('10:05:03')                                      |
    +---------------------------------------------------------+
    | 3                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    SEC_TO_TIME(seconds)

    將參數中的秒數轉換為時分秒的格式 'HH:MM:SS' 或者 HHMMSS,如果函數所處的上下文為字符串型,則返回前者,否則如果上下文環境為數值型,則返回后者。

    STR_TO_DATE(str,format)

    這是 DATE_FORMATE() 函數的逆函數,其參數為表示時間和日期的字符串 str 和一個格式字符串 format。如果格式字符串中既有日期又有時間,則 STR_TO_DATE() 返回 DATETIME() 型的值,否則返回日期型(DATE)或者時間型(TIME)的值。

    mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
    +---------------------------------------------------------+
    | STR_TO_DATE('04/31/2004', '%m/%d/%Y')                   |
    +---------------------------------------------------------+
    | 2004-04-31                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    SUBDATE(date,INTERVAL expr unit) and SUBDATE(expr,days)

    當第二個參數為 INTERVAL 形式時,SUBDATE() 就是 DATE_SUB() 的別名。INTERVAL 參數中單位的信息,請見有關 DATE_ADD() 的討論。

    mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
    +---------------------------------------------------------+
    | DATE_SUB('1998-01-02', INTERVAL 31 DAY)                 |
    +---------------------------------------------------------+
    | 1997-12-02                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
    +---------------------------------------------------------+
    | SUBDATE('1998-01-02', INTERVAL 31 DAY)                  |
    +---------------------------------------------------------+
    | 1997-12-02                                              |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    SUBTIME(expr1,expr2)

    SUBTIME() 返回 expr1-expr2,結果的格式與 expr1 相同。expr1 是一個時間型(time)或者 datetime 型的表達式,expr2 是時間型值。

    SYSDATE()

    返回當前的日期和時間,格式為 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS,如果函數所處的上下文環境為字符串,則返回前者,否則如果上下文環境為數值型,則返回后者。

    mysql> SELECT SYSDATE();
    +---------------------------------------------------------+
    | SYSDATE()                                               |
    +---------------------------------------------------------+
    | 2006-04-12 13:47:44                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIME(expr)

    提取時間型或者 datetime 型表達式 expr 中的時間部分,返回結果為字符串。

    mysql> SELECT TIME('2003-12-31 01:02:03');
    +---------------------------------------------------------+
    | TIME('2003-12-31 01:02:03')                             |
    +---------------------------------------------------------+
    | 01:02:03                                                |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIMEDIFF(expr1,expr2)

    TIMEDIFF() 返回 expr1-expr2,結果為時間型值。expr1 和 expr2 可以為時間型或者 datetime 型表達式,不過二者必須為相同類型。

    mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
        -> '1997-12-30 01:01:01.000002');
    +---------------------------------------------------------+
    | TIMEDIFF('1997-12-31 23:59:59.000001'.....              |
    +---------------------------------------------------------+
    |  46:58:57.999999                                        |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIMESTAMP(expr), TIMESTAMP(expr1,expr2)

    只有一個參數的時候,該函數由日期型或者 datetime 型表達式返回一個 datetime 型值。有兩個參數的時候,該函數將 expr2 加到日期型或 datetime 型值 expr1 上,并返回 datetime 型的結果。

    mysql> SELECT TIMESTAMP('2003-12-31');
    +---------------------------------------------------------+
    | TIMESTAMP('2003-12-31')                                 |
    +---------------------------------------------------------+
    | 2003-12-31 00:00:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIMESTAMPADD(unit,interval,datetime_expr)

    將整數型的表達式 interval 加到日期型或者 datetime 型表達式 datetime_expr 上。單位由 unit 參數給出,其取值應為以下幾種中的一種:FRAC_SECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER 或者 YEAR。

    單位 unit 可以為上述關鍵字中的一個,也可以添加一個 SQLTSI 前綴,例如 DAY 和 SQL_TSI_DAY 都是合法的。

    mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
    +---------------------------------------------------------+
    | TIMESTAMPADD(MINUTE,1,'2003-01-02')                     |
    +---------------------------------------------------------+
    | 2003-01-02 00:01:00                                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

    返回日期型或者 datetime 型表達式 datetime_expr1 和 datetime_expr2 的差。結果的單位由 unit 參數給出,unit 的取值規定同 TIMESTAMPADD() 函數。

    mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
    +---------------------------------------------------------+
    | TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01')          |
    +---------------------------------------------------------+
    | 3                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIME_FORMAT(time,format)

    該函數使用起來類似 DATE_FORMAT() 函數,但是格式字符串 format 中只能有與小時、分鐘和秒有關的那些占位符。

    如果時間型值的小時部分大于 23,則 %H 和 %k 格式占位符將會產生一個大于通常的 0-23 的值,其他與小時有關的占位符則會返回小時值除以 12 后的余數(modulo 12)。

    mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
    +---------------------------------------------------------+
    | TIME_FORMAT('100:00:00', '%H %k %h %I %l')              |
    +---------------------------------------------------------+
    | 100 100 04 04 4                                         |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    TIME_TO_SEC(time)

    將時間型值轉換為秒。

    mysql> SELECT TIME_TO_SEC('22:23:00');
    +---------------------------------------------------------+
    | TIME_TO_SEC('22:23:00')                                 |
    +---------------------------------------------------------+
    | 80580                                                   |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)、

    TO_DAYS(date)

    給定日期型值 date,返回天數(自公元 0 年以來的天數)。

    mysql> SELECT TO_DAYS(950501);
    +---------------------------------------------------------+
    | TO_DAYS(950501)                                         |
    +---------------------------------------------------------+
    | 728779                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

    不帶任何參數時,該函數返回一個 unsigned integer 型的 UNIX 時間戳(自 '1970-01-01 00:00:00' UTC 以來的秒數)。如果有一個參數 date 的話,該函數返回自 '1970-01-01 00:00:00' UTC 至 date 的秒數。date 可以是日期型的字符串、DATETIME 型的字符串、時間戳或者 YYMMDD 或 YYYYMMDD 格式的數字。

    mysql> SELECT UNIX_TIMESTAMP();
    +---------------------------------------------------------+
    | UNIX_TIMESTAMP()                                        |
    +---------------------------------------------------------+
    | 882226357                                               |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
    +---------------------------------------------------------+
    | UNIX_TIMESTAMP('1997-10-04 22:23:00')                   |
    +---------------------------------------------------------+
    | 875996580                                               |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    UTC_DATE, UTC_DATE()

    返回當前 UTC 日期,格式為 'YYYY-MM-DD' 或者 YYYYMMDD,如果函數所處的上下文環境為字符串,則返回前者,否則如果上下文環境為數值型的,則返回后者。

    mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
    +---------------------------------------------------------+
    | UTC_DATE(), UTC_DATE() + 0                              |
    +---------------------------------------------------------+
    | 2003-08-14, 20030814                                    |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    UTC_TIME, UTC_TIME()

    返回當前 UTC 時間,格式為 'HH:MM:SS' 或者 HHMMSS,如果函數所處的上下文環境為字符串,則返回前者,否則如果上下文環境為數值型的,則返回后者。

    mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
    +---------------------------------------------------------+
    | UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0                    |
    +---------------------------------------------------------+
    | 2003-08-14 18:08:04, 20030814180804                     |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    WEEK(date[,mode])

    該函數將返回 date 所在的周是當年的第幾周。兩個參數的 WEEK() 函數的使你能夠指明一周起始于周日還是周一,以及返回值的范圍應該是 0 到 53,還是 1 到 53。如果 mode 參數被忽略,則將使用 default_week_format 系統變量。

    Mode 一周的第一天 范圍 周 1 是第一周
    0 Sunday 0-53 該年包括一個星期天
    1 Monday 0-53 該年包含超過 3 天
    2 Sunday 1-53 該年包括一個星期天
    3 Monday 1-53 該年包含超過 3 天
    4 Sunday 0-53 該年包含超過 3 天
    5 Monday 0-53 該年包括一個星期一
    6 Sunday 1-53 該年包含超過 3 天
    7 Monday 1-53 該年包括一個星期一
    mysql> SELECT WEEK('1998-02-20');
    +---------------------------------------------------------+
    | WEEK('1998-02-20')                                      |
    +---------------------------------------------------------+
    | 7                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    WEEKDAY(date)

    返回 date 是其所在星期的第幾天 (0 = Monday, 1 = Tuesday, . 6 = Sunday)。

    mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
    +---------------------------------------------------------+
    | WEEKDAY('1998-02-03 22:23:00')                          |
    +---------------------------------------------------------+
    | 1                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    WEEKOFYEAR(date)

    返回 date 所在的周是當年的第幾周,范圍從 1 到 53. WEEKOFYEAR() 是一個兼容性函數,其功能同 WEEK(date, 3)相同。

    mysql> SELECT WEEKOFYEAR('1998-02-20');
    +---------------------------------------------------------+
    | WEEKOFYEAR('1998-02-20')                                |
    +---------------------------------------------------------+
    | 8                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    YEAR(date)

    返回 date 的年份部分,范圍為 1000 到 9999,對于日期 0 則返回 0。

    mysql> SELECT YEAR('98-02-03');
    +---------------------------------------------------------+
    | YEAR('98-02-03')                                        |
    +---------------------------------------------------------+
    | 1998                                                    |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    YEARWEEK(date), YEARWEEK(date,mode)

    返回 date 所在的年份和周數。mode 參數意義與 WEEK() 函數的完全一樣。對于一年中的第一周和最后一周來說,結果中的年份可能會和 date 參數中的年份不同。

    mysql> SELECT YEARWEEK('1987-01-01');
    +---------------------------------------------------------+
    | YEAR('98-02-03')YEARWEEK('1987-01-01')                  |
    +---------------------------------------------------------+
    | 198653                                                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    注意,這里的周數同 WEEK() 返回的不同,因為 WEEK() 函數的返回值在給定年份的的上下文環境中得出。

    關閉
    程序員人生
    主站蜘蛛池模板: 亚洲日韩欧美一区二区在线 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美一区二区三区 | 在线观看的免费视频网站 | 91久久澡人人爽人人添 | 成人福利片| 亚洲最大的视频网站 | 一级片欧美 | 欧美在线看欧美视频免费网站 | 亚洲美女色 | www一级毛片 | 岛国午夜精品视频在线观看 | 一区二区在线视频免费观看 | 免费看的成人yellow视频 | 欧美成人亚洲欧美成人 | 欧美 日本 | 久久爱18 | 五月天开心中文字幕 | 亚洲综合福利 | 亚洲成人77777| 亚洲性综合 | 欧美福利专区 | 性欧美video另类3d | 不卡中文一二三区 | 成人资源在线观看 | 成 人 免费观看网站 | 欧美黑人乱大交 | 精品欧美一区手机在线观看 | 一区二区三区视频免费观看 | 国产成人啪精品午夜在线播放 | 欧美18videosex性欧美群 | 国产欧美一区二区三区在线看 | 精品久久久久久无码中文字幕 | 91麻豆精品国产综合久久久 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看尤物 | 国产精品99久久久久久www | 亚洲精品国产福利片 | 亚洲欧美日韩综合一区久久 | 国产乱人乱精一区二区视频密 | 亚洲黄色色图 | 91人人干 | 美女网站免费观看视频 |