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

Mysql日期格式以及內置日期函數用法詳解

 更新時間:2023年05月10日 14:34:24   作者:ximeneschen  
MySQL中有多種數據類型可以用于日期和時間的表示,這篇文章主要給大家介紹了關于Mysql日期格式以及內置日期函數用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、MySQL中的日期時間類型

MySQL中常用的幾種時間類型有:date、datetime、time、year、timestamp

datetime和timestamp的區(qū)別

  • 相同點: 存儲格式相同 datetime和timestamp兩者的時間格式都是YYYY-MM-DD HH:MM:SS
  • 不同點:
    • a. 存儲范圍不同. datetime的范圍是1000-01-01到9999-12-31. 而timestamp是從1970-01-01到2038-01-19, 即后者的時間范圍很小.
    • b. 與時區(qū)關系. datetime是存儲服務器當前的時區(qū). 而timestamp類型,是將服務器當前時間轉換為UTC(世界時間)來存儲.即datetime與時區(qū)無關,存什么,返回什么. 而timestamp存儲的時間,返回的時間會隨著數據庫的時區(qū)不同而發(fā)生改變.

詳細解釋

  • datetime : 時間日期型,格式是YYYY-mm-dd HH:ii:ss,表示的范圍是從1000到9999。但是有零值,0000-00-00 00:00:00;
  • date:日期,就是datetime中的date部分;
  • time:時間(段),指定的某個區(qū)間之間,從-時間到+時間(有負時間表示);
  • timestamp:時間戳,并不是常規(guī)意義時間戳(如:14253685),范圍是’1970-01-01 00:00:00’到2037年。格式為YYYY-mm-dd HH:ii:ss,格式與datetime完全一致;
  • year:yy和yyyy,yyyy的范圍是1901-2155,yy的范圍是1970-2069。

兩位year(00-69表示2000-2069,70-99表示1970~1999)。當應用只需要記錄年份時,year比date更省空間

create table my_date(
	d1 datetime,
	d2 date,
	d3 time,
	d4 timestamp,
	d5 year
)charset utf8;

描述表:

測試表

insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','2015');
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-11:50:54','2015-09-28 11:51:08','2015');-- -11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-211:50:54','2015-09-28 11:51:08','2015');-- -2 11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-2 11:50:54','2015-09-28 11:51:08','2015');-- -2過去兩天
#year用69標識-2069
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','69');-- 69
#year用70標識-1970
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','70');-- 70
insert into my_date VALUES(now(),now(),now(),now(),now());-- 70

二、mysql中獲取時間戳

select UNIX_TIMESTAMP();

三、mysql中datetime類型的長度位數

通常我們MySQL中設計datetime類型長度都默認為0:這時插入時間通常會是我們常見到的:2020-08-29 12:52:16格式。但是如果datetime(n)中的n不為0呢?

create table my_date(
	datetime datetime,
	datetime2 datetime(2),
	date date,
	time time,
	timestamp timestamp,
	year year
)charset utf8;

四、mysql常用時間函數

獲取當前時間

  • now()
  • sysdate()
  • current_timestamp()

sysdate() 日期函數和 now() 類似, 不同之處在于: now() 在執(zhí)行開始的時候就得到值了, sysdate() 在函數執(zhí)行時動態(tài)得到的值,例子如下:

時間轉換函數(字符串轉時間,時間轉字符串) 日期/時間轉字符串函數: date_format(date, format)(可以格式日期和時間), time_format(time, format)(可以格式時間)

字符串轉換日期 函數: str_to_date(str, format)

可以看出, str_to_date(str, format) 轉換函數, 可以把一些雜亂無章的字符串轉換為日期格式.

日期, 天數轉換函數: to_days(date), from_days(days),to_days():返回的是一個天數!從年份 0 開始的天數,from_days(days)作用與to_days相反。

時間, 秒 轉換函數: time_to_sec(time), sec_to_time(seconds)

兩個函數是相互的

設定日期, 時間函數: makedate(year, dayfoyear), maketime(hour, minute, second)

時間戳, 日期轉換函數: unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp, format)

# 當前時間戳
select unix_timestamp();
# 指定時間的時間戳
select unix_timestamp('2020-09-09 12:00:00');
# 時間戳轉換成日期
select from_unixtime(1599624000);
# 時間戳轉換成指定格式日期
select from_unixtime(1599624000, '%Y-%D-%M %h:%i:%s');

五、日期時間計算函數

日期增加一個時間間隔函數: date_add()

set @dt = now();
# 增加一天
select date_add(@dt, interval 1 day);
# 增加一小時
select date_add(@dt, interval 1 hour);
# 增加一周
select date_add(@dt, interval 1 week);
# 增加一季度
select date_add(@dt, interval 1 quarter);
# 增加一天
select date_add(@dt, interval -1 day);

為指定日期減去一個時間間隔函數: date_sub(),用法如上。

兩個日期, 時間相減函數: datediff(date1, date2), timediff(time1, time2)

時間戳 (timestamp) 轉換, 增加, 減少函數: timestamp(date), timestamp(dt, time), timestampadd(unit, interval, datetime_expr), timestampdiff(unit, datetime_expr1, datetime_expr2)

# timestamp(date)
mysql> select timestamp('2020-09-09');
+-------------------------+
| timestamp('2020-09-09') |
+-------------------------+
| 2020-09-09 00:00:00     |
+-------------------------+
1 row in set (0.00 sec)

# timestamp(dt, time)
mysql> select timestamp('2020-09-09 09:00:00', '01:00:00');
+----------------------------------------------+
| timestamp('2020-09-09 09:00:00', '01:00:00') |
+----------------------------------------------+
| 2020-09-09 10:00:00                          |
+----------------------------------------------+
1 row in set (0.00 sec)

# timestampadd(unit, interval, datetime_expr)
mysql> select timestampadd(day, 1, '2020-09-09 09:00:00');
+---------------------------------------------+
| timestampadd(day, 1, '2020-09-09 09:00:00') |
+---------------------------------------------+
| 2020-09-10 09:00:00                         |
+---------------------------------------------+
1 row in set (0.00 sec)


# timestampdiff(unit, datetime_expr1, datetime_expr2), 返回結果以天為單位
mysql> select timestampdiff(day, '2020-09-09', '2020-09-01');
+------------------------------------------------+
| timestampdiff(day, '2020-09-09', '2020-09-01') |
+------------------------------------------------+
|                                             -8 |
+------------------------------------------------+
1 row in set (0.00 sec)

# 返回結果以小時為單位
mysql> select timestampdiff(hour, '2020-09-09 09:00:00', '2020-09-01 08:00:00');
+-------------------------------------------------------------------+
| timestampdiff(hour, '2020-09-09 09:00:00', '2020-09-01 08:00:00') |
+-------------------------------------------------------------------+
|                                                              -193 |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select datediff('2020-09-09', '2020-09-01');
+--------------------------------------+
| datediff('2020-09-09', '2020-09-01') |
+--------------------------------------+
|                                    8 |
+--------------------------------------+
1 row in set (0.00 sec)

timestampdiff() 函數就比 datediff() 功能強多了,datediff() 只能計算兩個日期(date)之間相差的天數

總結

到此這篇關于Mysql日期格式以及內置日期函數用法的文章就介紹到這了,更多相關Mysql日期時間類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • linux mysql 報錯:MYSQL:The server quit without updating PID file

    linux mysql 報錯:MYSQL:The server quit&nbs

    mysql 報錯:MYSQL:The server quit without updating PID file。以下是可能的原因與解決方法
    2013-02-02
  • MySql帶OR關鍵字的多條件查詢語句

    MySql帶OR關鍵字的多條件查詢語句

    MySQL帶OR關鍵字的多條件查詢,與AND關鍵字不同,OR關鍵字,只要記錄滿足任意一個條件,就會被查詢出來。即AND的優(yōu)先級高于OR
    2017-07-07
  • 基于mysql replication的問題總結

    基于mysql replication的問題總結

    本篇文章是對mysql中replication的問題進行了詳細分析介紹,需要的朋友參考下
    2013-06-06
  • explain命令為什么可能會修改MySQL數據

    explain命令為什么可能會修改MySQL數據

    這篇文章主要介紹了explain命令為什么可能會修改MySQL數據,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • MySQL如何創(chuàng)建可以遠程訪問的root賬戶詳解

    MySQL如何創(chuàng)建可以遠程訪問的root賬戶詳解

    作為MySQL數據庫管理員,創(chuàng)建遠程用戶并設置相應的權限是一項常見的任務,下面這篇文章主要給大家介紹了關于MySQL如何創(chuàng)建可以遠程訪問的root賬戶的相關資料,需要的朋友可以參考下
    2024-04-04
  • MySql連接查詢方式詳解

    MySql連接查詢方式詳解

    這篇文章主要介紹了mysql連接查詢,當查詢結果的列來源于多張表時,需要將多張表連接成一個大的數據集,再選擇合適的列返回,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-09-09
  • php mysql localhost,127.0.0.1和ip區(qū)別

    php mysql localhost,127.0.0.1和ip區(qū)別

    localhost與127.0.0.1的區(qū)別是什么?相信有人會說是本地ip,曾有人說,用127.0.0.1比localhost好,可以減少一次解析。看來這個入門問題還有人不清楚,其實這兩者是有區(qū)別的
    2014-05-05
  • MYSQL的主從復制知識點整理

    MYSQL的主從復制知識點整理

    在本篇文章里小編給大家整理的是一篇關于MYSQL主從復制的相關知識點內容,有需要的朋友們參考學習下。
    2019-11-11
  • 安裝MySQL在最后的start service停住了解決方法

    安裝MySQL在最后的start service停住了解決方法

    今天為一個客戶配置服務器的時候,發(fā)現的問題,原來他自己安裝過mysql但安全沒有配置好,路徑選擇的也不好,重新安裝后發(fā)現在start service卡住了,通過下面的方法解決了,特分享下
    2013-11-11
  • Mysql三種常用的刪除數據或者表的方式

    Mysql三種常用的刪除數據或者表的方式

    本文主要介紹了Mysql三種常用的刪除數據或者表的方式,它們分別是?TRUNCATE、DROP?和?DELETE,下面就詳細的介紹一下這三種的使用,感興趣的可以了解一下
    2024-01-01

最新評論

焉耆| 闽清县| 任丘市| 公安县| 乌恰县| 和平县| 腾冲县| 白河县| 余庆县| 闽清县| 博野县| 塔城市| 班戈县| 定南县| 安仁县| 连州市| 江永县| 乃东县| 九江县| 沭阳县| 博乐市| 葫芦岛市| 广州市| 杭锦后旗| 西昌市| 永福县| 灌阳县| 多伦县| 名山县| 武威市| 佛冈县| 兰西县| 衡东县| 辛集市| 永定县| 宿州市| 岳池县| 龙泉市| 西藏| 镇安县| 苍南县|