最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章搞定Mysql日期時間函數(shù)

 更新時間:2020年12月10日 11:44:31   作者:張俊紅  
這篇文章主要給大家介紹了如何通過一篇文章搞定Mysql日期時間函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

日期和時間函數(shù)部分也是我們?nèi)粘9ぷ髦惺褂妙l率比較高的一部分。這一篇我們主要講講Mysql里面的日期時間相關(guān)的函數(shù),不同數(shù)據(jù)庫之間基本相同,只會有個別函數(shù)的差異。大家掌握一個數(shù)據(jù)庫的,其他的遇到不會的,直接查就可以了。

1.獲取當(dāng)前時刻時間

    1.1返回當(dāng)前時刻的日期和時間

    1.2獲取當(dāng)前時刻的日期

    1.3獲取當(dāng)前時刻的時間

    1.4獲取當(dāng)前時刻的周數(shù)

2.日期時間格式轉(zhuǎn)換

3.日期時間運算

    3.1向后偏移時間

    3.2向前偏移時間

    3.3兩日期做差

文章較長,建議先收藏,慢慢讀。

1.獲取當(dāng)前時刻時間

獲取當(dāng)前時刻的時間就是獲取程序運行的那一刻與時間相關(guān)的數(shù)據(jù),比如年月日、時分秒等信息。

1.1返回當(dāng)前時刻的日期和時間

返回當(dāng)前時刻的日期和時間在ESql中用的是now()函數(shù),直接在select后面寫上now()函數(shù)即可,具體代碼如下:

select now()

運行上面代碼就會得到你程序運行這一刻所處的年月日、時分秒的信息,比如:2019-12-25 22:47:37。

1.2獲取當(dāng)前時刻的日期

前面的now()函數(shù)獲取的是當(dāng)前時刻的日期和時間,我們有的時候可能只需要當(dāng)前時刻的日期部分,并不需要時間部分,這個時候在在Sql中將now()函數(shù)換成curdate()函數(shù),就是獲取當(dāng)前時刻的日期部分,具體代碼如下:

select curdate()

通過運行上面的代碼,我們得到了當(dāng)前時刻的日期部分:2019-12-25

curdate()函數(shù)是直接獲取當(dāng)前時刻的日期部分,我們也可以先通過now()函數(shù)獲取當(dāng)前時刻的日期時間,然后再通過date()函數(shù)將日期時間轉(zhuǎn)化為日期部分,具體代碼如下:

select date(now())

通過運行上面的代碼,會得到與curdate()函數(shù)相同的結(jié)果。

我們也可以只獲取日期中的年,使用的是year()函數(shù),具體代碼如下:

select year(now())

通過運行上面的代碼,最后得到的結(jié)果為2019。

我們也可以只獲取日期中的月,使用的是month()函數(shù),具體代碼如下:

select month(now())

通過運行上面的代碼,最后得到的結(jié)果為12。

我們也可以只獲取日期中的日,使用的是day()函數(shù),具體代碼如下:

select day(now())

通過運行上面的代碼,最后得到的結(jié)果為25。

1.3獲取當(dāng)前時刻的時間

我們除了有只獲取當(dāng)前時刻的日期的需求外,我們還有只獲取當(dāng)前時刻的時間需求。如果我們想只獲取當(dāng)前時刻的時間,只需要把只獲取當(dāng)前時刻日期的curdate()函數(shù)換成curtime()函數(shù)即可,具體代碼如下:

select curtime()

通過運行上面的代碼,就可以獲取當(dāng)前時刻的時間部分:22:47:37。

我們也可以先通過now()函數(shù)獲取當(dāng)前時刻的日期時間,然后再通過time()函數(shù)將日期時間轉(zhuǎn)化為時間部分,具體代碼如下:

select time(now())

通過運行上面的代碼,會得到與curdate()函數(shù)相同的結(jié)果。

我們也可以只獲取時間中的小時,使用的是hour()函數(shù),具體代碼如下:

select hour(now())

通過運行上面的代碼,最后得到的結(jié)果為22。

我們也可以只獲取時間中的分鐘,使用的是minute()函數(shù),具體代碼如下:

select minute(now())

通過運行上面的代碼,最后得到的結(jié)果為47。

我們也可以只獲取時間中的秒,使用的是second()函數(shù),具體代碼如下:

select second(now())

通過運行上面的代碼,最后得到的結(jié)果為37。

1.4獲取當(dāng)前時刻的周數(shù)

上面我們講了如何獲取當(dāng)前時刻的日期時間、日期、時間這三部分。這一節(jié)我們再看下如何獲取當(dāng)前時刻所屬的周數(shù)。我們一般會將全年分為52周(365天/7),有的時候也可能是53周,如果我們想看下當(dāng)前時刻是全年中的第幾周,可以使用weekofyear()函數(shù),具體代碼如下:

select weekofyear(now())

通過運行上面的代碼,最后得到的結(jié)果為52。

除了獲取當(dāng)前是全年的第幾周以外,我們還需要獲取當(dāng)天是一周內(nèi)的周幾。在Sql中使用的dayofweek()函數(shù),具體代碼如下:

select dayofweek(now())

通過運行上面的代碼,最后得到結(jié)果為5,2019年12月25日應(yīng)該是周四哈,為什么結(jié)果是5呢,這是因為該函數(shù)中一周是從周日開始的,也就是周日對應(yīng)的是1,周一對應(yīng)的是2,以此類推,所以周四對應(yīng)的是5。

2.日期時間格式轉(zhuǎn)換

我們知道同一個日期時間會有多種不同的表示方式,有的時候需要在不同格式之間相互轉(zhuǎn)換。在Sql中我們用的是date_format()函數(shù),date_format函數(shù)格式如下:

date_format(datetime,format)

datetime表示要被轉(zhuǎn)換的具體的日期時間,format表示要轉(zhuǎn)換成的格式,可選的格式如下:

主題

格式

描述

%Y

4位數(shù)的年

%b

月份對應(yīng)的英文縮寫

%M

月份對應(yīng)的英文全稱

%m

01-12的月

%c

1-12的月份數(shù)值

%d

01-31的某月里面的第幾天

%e

1-31的某月里面的第幾天

%D

用th后綴表示某月中的第幾天

%j

001-366的一年中的第幾天

%a

星期幾對應(yīng)的英文縮寫

%W

星期幾對應(yīng)的英文全稱

%H

00-23的小時

%h

01-12的小時

%i

00-59的分鐘

%S

秒(00-59)

%f

微秒

時分秒

%T

返回當(dāng)前的時分秒, 24-小時 (hh:mm:ss)

select date_format("2019-12-25 22:47:37","%Y-%m-%d")

通過運行上面的代碼,就會返回4位數(shù)的年、01-12的月、01-31的天,三者之間且用-分隔開來,即2019-12-25。

這里需要注意下1和01的區(qū)別,本質(zhì)上都是表示的1,但是展示上會有些不太一樣,比如下面代碼中,我們的原日期是2019-1-1,但是返回的結(jié)果是2019-01-01的。

select date_format("2019-1-1 22:47:37","%Y-%m-%d")
select date_format("2019-12-25 22:47:37","%H:%i:%S")

通過運行上面的代碼就會返回00-23的小時、00-59的分、00-59的秒,三者之間用:分隔開來,即22:47:37。

除了date_format()函數(shù)以外,還有另外一個函數(shù)extract,用于返回一個具體日期時間中的單獨部分,比如年、月、日、小時、分鐘等等。具體形式如下:

extract(unit from datetime)

datetime表示具體的日期時間,unit表示要從datetime中返回的單獨的部分。unit值可以是下列的值:

unit

說明

year

month

day

hour

小時

minute

分鐘

second

week

周數(shù),全年第幾周

select
 extract(year from "2019-12-25 22:47:37") as col1
 ,extract(month from "2019-12-25 22:47:37") as col2
 ,extract(day from "2019-12-25 22:47:37") as col3

通過運行上面的代碼,就會分別獲取到datetime中的年月日,具體結(jié)果如下:

col1

col2

col3

2019

12

25

3.日期時間運算

有的時候我們也需要對日期之間進行運算,比如我要獲取今天往前7天對應(yīng)的日期,或者今天往后13天對應(yīng)的日期,可以去翻日歷,也可以去數(shù)數(shù),但是這些方法肯定都不是最直接的方法。所以需要日期之間的運算。

3.1向后偏移時間

比如我們要獲取今天之后的x天對應(yīng)的日期,就是相當(dāng)于在今天日期的基礎(chǔ)上加x天,我們把這叫做向后偏移,這個時候就可以使用date_add()函數(shù),具體形式如下:

date_add(date,interval num unit)

date表示當(dāng)前的日期,或者當(dāng)前的日期時間;interval是一個固定的參數(shù);num為上面講到的x;unit表示你要加的單位,是往后移動7天,還是7月,還是7年,可選值與extract函數(shù)中unit的可選值是一樣的。

select 
 "2019-01-01" as col1
 ,date_add("2019-01-01",interval 7 year) as col2
 ,date_add("2019-01-01",interval 7 month) as col3
 ,date_add("2019-01-01",interval 7 day) as col4

通過運行上面的代碼,就會返回2019-01-01往后7年、7月、7天對應(yīng)的日期,具體結(jié)果如下:

col1

col2

col3

col4

2019-01-01

2026-01-01

2019-08-01

2019-01-08

select 
 "2019-01-01 01:01:01" as col1
 ,date_add("2019-01-01 01:01:01",interval 7 hour) as col2
 ,date_add("2019-01-01 01:01:01",interval 7 minute) as col3
 ,date_add("2019-01-01 01:01:01",interval 7 second) as col4

通過運行上面的代碼,就會返回2019-01-01 01:01:01往后7小時、7分鐘、7秒對應(yīng)的日期,具體結(jié)果如下:

col1

col2

col3

col4

2019-01-01 01:01:01

2019-01-01 08:01:01

2019-01-01 01:08:01

2019-01-01 01:01:08

3.2向前偏移時間

有向后偏移,就會有向前偏移。比如我們要獲取今天之前的若干天,就是相當(dāng)于是在當(dāng)前日期的基礎(chǔ)上減去x天,這個時候我們使用的是date_sub()函數(shù),date_sub與date_add的函數(shù)形式是一樣的。把上面代碼中的date_add換成date_sub就表示向前偏移。

select 
 "2019-01-01" as col1
 ,date_sub("2019-01-01",interval 7 year) as col2
 ,date_sub("2019-01-01",interval 7 month) as col3
 ,date_sub("2019-01-01",interval 7 day) as col4

通過運行上面的代碼,就會返回2019-01-01往前7年、7月、7天對應(yīng)的日期,具體結(jié)果如下:

col1

col2

col3

col4

2019-01-01

2012-01-01

2018-06-01

2018-12-25

向前偏移指定的時間,我們除了使用date_sub以外,我們還可以繼續(xù)使用date_add,只不過把加的具體num值換成負(fù)數(shù)就行,比如7換成-7即可,具體實現(xiàn)代碼如下:

select 
 "2019-01-01" as col1
 ,date_add("2019-01-01",interval -7 year) as col2
 ,date_add("2019-01-01",interval -7 month) as col3
 ,date_add("2019-01-01",interval -7 day) as col4

通過運行上面的結(jié)果與使用date_sub得出來的結(jié)果是一致的。

3.3兩日期做差

上面講完了向前偏移、向后偏移,我們有的時候還需要獲取兩日期之差,使用的datediff()函數(shù),datediff用于返回兩日期之間相差的天數(shù),函數(shù)形式如下:

datediff(end_date,start_date)

我們是用end_date去減start_date的。

select datediff("2019-01-07","2019-01-01")

通過運行上面的代碼,會返回2019-01-07與2019-01-01之間的天數(shù)差,結(jié)果為6。

你還可以看:

Sql 的執(zhí)行順序是怎樣的?

到此這篇關(guān)于Mysql日期時間函數(shù)的文章就介紹到這了,更多相關(guān)Mysql日期時間函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 使用DQL命令查詢數(shù)據(jù)的實現(xiàn)方法

    MySQL 使用DQL命令查詢數(shù)據(jù)的實現(xiàn)方法

    這篇文章主要介紹了MySQL 使用DQL命令查詢數(shù)據(jù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 基于SQL中SET與SELECT賦值的區(qū)別詳解

    基于SQL中SET與SELECT賦值的區(qū)別詳解

    本篇文章是對SQL中SET與SELECT賦值的區(qū)別進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 從零開始MySQL觸發(fā)器實戰(zhàn)攻略

    從零開始MySQL觸發(fā)器實戰(zhàn)攻略

    想要掌握MySQL觸發(fā)器的實戰(zhàn)技巧嗎?從零開始,跟我一起揭開觸發(fā)器神秘的面紗!輕松入門,迅速提升,這個指南將讓你的MySQL技能煥然一新!一探究竟,驚喜等你發(fā)現(xiàn)!
    2024-02-02
  • 關(guān)于MySQL的sql_mode合理設(shè)置詳解

    關(guān)于MySQL的sql_mode合理設(shè)置詳解

    這篇文章主要給大家介紹了關(guān)于MySQL的sql_mode合理設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • mysql事務(wù)的基本要素與事務(wù)隔離級別詳解

    mysql事務(wù)的基本要素與事務(wù)隔離級別詳解

    這篇文章主要介紹了mysql事務(wù)的基本要素與事務(wù)隔離級別詳解,事務(wù)是一種機制、一個操作序列,包含了一組數(shù)據(jù)庫操作命令,并且把所有的命令作為一個整體一起向系統(tǒng)提交或撤銷操作請求,需要的朋友可以參考下
    2023-08-08
  • Druid數(shù)據(jù)庫連接池的jar包的使用方式

    Druid數(shù)據(jù)庫連接池的jar包的使用方式

    這篇文章主要介紹了Druid數(shù)據(jù)庫連接池的jar包的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • mysql 某字段插入隨機數(shù)(插入隨機數(shù)到MySQL數(shù)據(jù)庫)

    mysql 某字段插入隨機數(shù)(插入隨機數(shù)到MySQL數(shù)據(jù)庫)

    這篇文章主要介紹了mysql 某字段插入隨機數(shù)(插入隨機數(shù)到MySQL數(shù)據(jù)庫),需要的朋友可以參考下
    2016-09-09
  • MySQL 5.6 GTID新特性實踐

    MySQL 5.6 GTID新特性實踐

    GTID(Global Transaction ID)是對于一個已提交事務(wù)的編號,并且是一個全局唯一的編號。下文給大家介紹MySQL 5.6 GTID新特性實踐,感興趣的朋友一起看看吧
    2016-10-10
  • mysql字段為null為何不能使用!=

    mysql字段為null為何不能使用!=

    這篇文章主要介紹了mysql字段為null為何不能使用!=問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • mysql 8.0.11 macos10.13安裝配置方法圖文教程

    mysql 8.0.11 macos10.13安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 macos10.13安裝配置方法圖文教程,mysql數(shù)據(jù)庫安裝及配置環(huán)境變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

乐至县| 安宁市| 达尔| 阿坝县| 临高县| 安义县| 仲巴县| 宁德市| 两当县| 漳州市| 化州市| 西藏| 新巴尔虎左旗| 利川市| 罗甸县| 弥勒县| 达州市| 青神县| 阿图什市| 新干县| 永丰县| 阳信县| 固镇县| 利津县| 龙岩市| 穆棱市| 平阴县| 南城县| 延吉市| 南开区| 深水埗区| 兴安盟| 龙里县| 万宁市| 奉贤区| 行唐县| 临沧市| 滁州市| 黔东| 洛宁县| 泊头市|