程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL的Data_ADD函數與日期格局化函數解釋

MySQL的Data_ADD函數與日期格局化函數解釋

編輯:MySQL綜合教程

MySQL的Data_ADD函數與日期格局化函數解釋。本站提示廣大學習愛好者:(MySQL的Data_ADD函數與日期格局化函數解釋)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL的Data_ADD函數與日期格局化函數解釋正文


  • DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type)

這些函數履行日期運算。 date 是一個 DATETIME 或DATE值,用來指定肇端時光。 expr 是一個表達式,用來指定從肇端日期添加或減去的時光距離值。  Expr是一個字符串;關於負值的時光距離,它可以以一個 ‘-'開首。 type 為症結詞,它指導了表達式被說明的方法。 

症結詞INTERVA及 type 分類符均不辨別年夜小寫。

以下表顯示了typeexpr 參數的關系:

type

預期的 expr 格局

MICROSECOND

MICROSECONDS

SECOND

SECONDS

MINUTE

MINUTES

HOUR

HOURS

DAY

DAYS

WEEK

WEEKS

MONTH

MONTHS

QUARTER

QUARTERS

YEAR

YEARS

SECOND_MICROSECOND

'SECONDS.MICROSECONDS'

MINUTE_MICROSECOND

'MINUTES.MICROSECONDS'

MINUTE_SECOND

'MINUTES:SECONDS'

HOUR_MICROSECOND

'HOURS.MICROSECONDS'

HOUR_SECOND

'HOURS:MINUTES:SECONDS'

HOUR_MINUTE

'HOURS:MINUTES'

DAY_MICROSECOND

'DAYS.MICROSECONDS'

DAY_SECOND

'DAYS HOURS:MINUTES:SECONDS'

DAY_MINUTE

'DAYS HOURS:MINUTES'

DAY_HOUR

'DAYS HOURS'

YEAR_MONTH

'YEARS-MONTHS'

MySQL 許可任何expr 格局中的標點分隔符。表中所顯示的是建議的 分隔符。若 date 參數是一個 DATE 值,而你的盤算只會包含 YEAR、MONTH和DAY部門(即, 沒有時光部門), 其成果是一個DATE 值。不然,成果將是一個 DATETIME值。

若位於另外一真個表達式是一個日期或日期時光值 , 則INTERVAL expr type只許可在 + 操作符的兩頭。關於 –操作符,  INTERVAL expr type 只許可在其右端,緣由是從一個時光距離中提取一個日期或日期時光值是毫有意義的。 (見上面的例子)。

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 DATE_ADD('1992-12-31 23:59:59.000002',

    ->            INTERVAL '1.999999' SECOND_MICROSECOND);

        -> '1993-01-01 00:00:01.000001'

若你指定了一個過於短的時光距離值 (不包含type 症結詞所預期的一切時光距離部門), MySQL 假定你曾經省去了時光距離值的最左部門。 例如,你指定了一品種型的DAY_SECOND, expr 的值預期應該具有天、 小時、分鐘和秒部門。若你指定了一個相似 '1:10'的值, MySQL 假定天和小時部門不存在,那末這個值代表分和秒。換言之, '1:10' DAY_SECOND 被說明為相當於 '1:10' MINUTE_SECOND。這相當於 MySQL將TIME 值說明為所消耗的時光而不是日時的說明方法。             

假設你對一個日期值添加或減去一些含有時光部門的內容,則成果主動轉化為一個日期時光值:

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);

        -> '1999-01-02'

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);

        -> '1999-01-01 01:00:00'

假設你應用了格局嚴重毛病的日期,則成果為 NULL。假設你添加了  MONTH、YEAR_MONTH或YEAR ,而成果日期中有一天的日期年夜於添加的月份的日期最年夜限制,則這個日期主動被調劑為添加月份的最年夜日期:

mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);

        -> '1998-02-28'

  • DATE_FORMAT(date,format)

依據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 後加 AM或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

任務日稱號 (周日..周六)

%w

一周中的逐日 (0=周日..6=周六)

%X

該周的年份,個中周日為每周的第一天, 數字情勢,4位數;和%V同時應用

%x

該周的年份,個中周一為每周的第一天, 數字情勢,4位數;和%v同時應用

%Y

年份, 數字情勢,4位數

%y

年份, 數字情勢 (2位數)

%%

‘%'文字字符

一切其它字符都被復制到成果中,無需作出說明。

留意, ‘%'字符請求在格局指定符之前。

月份和日期解釋符的規模從零開端,緣由是 MySQL許可存儲諸如 '2004-00-00'的不完整日期.

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'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved