首頁 資料庫 mysql教程 MySQL的Data_ADD函数与日期格式化函数说明

MySQL的Data_ADD函数与日期格式化函数说明

Jun 07, 2016 pm 06:02 PM
日期格式化

今天看到了MySQL的日期函数,里面很多有用的,这里只把两个参数不太好记的粘下来了。

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

这些函数执行日期运算。 date 是一个 DATETIME 或DATE值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-'开头。 type 为关键词,它指示了表达式被解释的方式。

关键词INTERVA及 type 分类符均不区分大小写。

以下表显示了typeexpr 参数的关系:

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 字符串中:

所有其它字符都被复制到结果中,无需作出解释。

注意, ‘%'字符要求在格式指定符之前。

月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 '2004-00-00'的不完全日期.

mysql> <b>SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');</b>
登入後複製
        -> 'Saturday October 1997'
登入後複製
mysql> <b>SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');</b>
登入後複製
        -> '22:23:00'
登入後複製
mysql> <b>SELECT DATE_FORMAT('1997-10-04 22:23:00',</b>
登入後複製
登入後複製
                          '%D %y %a %d %m %b %j');
登入後複製
        -> '4th 97 Sat 04 10 Oct 277'
登入後複製
mysql> <b>SELECT DATE_FORMAT('1997-10-04 22:23:00',</b>
登入後複製
登入後複製
                          '%H %k %I %r %T %S %w');
登入後複製
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
登入後複製
mysql> <b>SELECT DATE_FORMAT('1999-01-01', '%X %V');</b>
登入後複製
        -> '1998 52'
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP語言開發中如何處理日期格式化錯誤? PHP語言開發中如何處理日期格式化錯誤? Jun 09, 2023 pm 06:40 PM

在PHP語言開發中,日期格式化錯誤是常見的問題。正確的日期格式對程式設計師來說十分重要,因為它決定程式碼的可讀性、可維護性和正確性。本文將分享一些處理日期格式化錯誤的技巧。在了解日期格式在處理日期格式化錯誤之前,我們必須先了解日期格式。日期格式是由各種字母和符號組成的字串,用於表示特定的日期和時間格式。在PHP中,常見的日期格式包括:Y:四位數年份(如20

如何使用Java中的DateFormat函數進行日期格式化 如何使用Java中的DateFormat函數進行日期格式化 Jun 26, 2023 pm 05:01 PM

Java是一種流行的程式語言,其中包含了許多強大的日期和時間處理工具。其中最常用的工具是DateFormat函數,該函數可以將日期資料格式化為特定的字串格式。本文將介紹如何使用Java中的DateFormat函數進行日期格式化。導入Date和DateFormat類別在開始使用DateFormat函數前,我們需要導入Java中的Date和DateFormat類

如何使用Python正規表示式進行日期格式化 如何使用Python正規表示式進行日期格式化 Jun 22, 2023 pm 08:25 PM

Python正規表示式是一種非常強大的文字處理工具,它可以對字串進行匹配、替換、提取等操作。在實際開發中,我們經常需要對日期進行格式化,例如將「2022/10/01」轉換成「2022年10月01日」的格式。本文將介紹如何使用Python正規表示式進行日期格式化。一、Python正規表示式概述Python正規表示式是一個特殊的字串模式,它描述了一系列符合某

PHP時間處理技巧:快速計算時間差與日期格式化 PHP時間處理技巧:快速計算時間差與日期格式化 Mar 01, 2024 am 08:54 AM

PHP時間處理技巧:快速計算時間差和日期格式化隨著互聯網的快速發展,時間處理成為Web開發中常見的任務之一。在PHP中,時間的處理是比較常見的需求,例如計算時間差、對日期進行格式化等操作。本文將介紹一些PHP時間處理的技巧,包括快速計算時間差和日期格式化,並附帶一些具體的程式碼範例。計算時間差在許多應用場景下,我們需要計算兩個時間點之間的時間差,例如計算兩

解決Java日期格式化異常(DateTimeParseException)的解決方案 解決Java日期格式化異常(DateTimeParseException)的解決方案 Aug 19, 2023 pm 03:36 PM

解決Java日期格式化異常(DateTimeParseException)的解決方案概述:在Java中,日期格式化是一個常見的任務。透過使用SimpleDateFormat類別或Java8中提供的新的日期時間API(如DateTimeFormatter),我們可以將日期和時間轉換為指定的格式。然而,有時在進行日期格式化時,可能會遇到DateTimePars

如何在Java中使用日期和時間函數進行日期計算和格式化 如何在Java中使用日期和時間函數進行日期計算和格式化 Oct 20, 2023 am 11:24 AM

如何在Java中使用日期和時間函數進行日期計算和格式化在Java中,日期和時間是非常常見且重要的資料類型。為了方便處理日期和時間,Java提供了豐富的日期和時間函數,可以進行日期計算、格式化等操作。以下將詳細介紹如何在Java中使用日期和時間函數,以及附上程式碼範例。一、日期計算取得目前日期使用java.time.LocalDate類別可以取得目前的日期。範例代

PHP格式化一個本地時間/日期 PHP格式化一個本地時間/日期 Mar 21, 2024 pm 02:30 PM

這篇文章將為大家詳細講解有關PHP格式化一個本地時間/日期,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP格式化本地時間/日期格式化本地時間和日期在php中是常見的任務,可以透過PHP的內建函數和類別來實現。內建函數PHP提供了幾個內建函數來格式化時間和日期:date():用於格式化當前時間和日期,並根據提供的格式字串傳回結果。 strftime():類似date(),但它使用POSIX的strftime()函數提供更進階的格式化選項。格式化參數date

PHP如何處理日期和時間問題 PHP如何處理日期和時間問題 Jun 30, 2023 am 08:37 AM

PHP開發中如何處理日期和時間處理問題概述:在PHP開發過程中,日期和時間處理是非常常見的需求。無論是處理使用者註冊時間、日程安排或資料統計分析,對日期和時間進行準確的處理是非常重要的。本文將介紹一些常用的PHP日期和時間處理函數以及一些實務經驗。取得目前日期和時間在PHP中,可以使用date函數來取得目前日期和時間。 date函數的語法如下:stringd

See all articles