电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Mysql日期格式以及內(nèi)置日期函數(shù)用法詳解

瀏覽:183日期:2023-05-08 10:17:36
目錄
  • 一、MySQL中的日期時間類型
  • 二、mysql中獲取時間戳
  • 三、mysql中datetime類型的長度位數(shù)
  • 四、mysql常用時間函數(shù)
  • 五、日期時間計算函數(shù)
  • 總結(jié)

一、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類型,是將服務器當前時間轉(zhuǎn)換為UTC(世界時間)來存儲.即datetime與時區(qū)無關,存什么,返回什么. 而timestamp存儲的時間,返回的時間會隨著數(shù)據(jù)庫的時區(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");-- -11insert into my_date VALUES("2015-09-28 11:50:36","2015-09-28","-211:50:54","2015-09-28 11:51:08","2015");-- -2 11insert 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標識-2069insert 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標識-1970insert into my_date VALUES("2015-09-28 11:50:36","2015-09-28","11:50:54","2015-09-28 11:51:08","70");-- 70insert into my_date VALUES(now(),now(),now(),now(),now());-- 70

二、mysql中獲取時間戳

select UNIX_TIMESTAMP();

三、mysql中datetime類型的長度位數(shù)

通常我們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常用時間函數(shù)

獲取當前時間

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

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

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

字符串轉(zhuǎn)換日期 函數(shù): str_to_date(str, format)

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

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

時間, 秒 轉(zhuǎn)換函數(shù): time_to_sec(time), sec_to_time(seconds)

兩個函數(shù)是相互的

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

時間戳, 日期轉(zhuǎn)換函數(shù): 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");# 時間戳轉(zhuǎn)換成日期select from_unixtime(1599624000);# 時間戳轉(zhuǎn)換成指定格式日期select from_unixtime(1599624000, "%Y-%D-%M %h:%i:%s");

五、日期時間計算函數(shù)

日期增加一個時間間隔函數(shù): 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);

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

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

時間戳 (timestamp) 轉(zhuǎn)換, 增加, 減少函數(shù): 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), 返回結(jié)果以天為單位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)# 返回結(jié)果以小時為單位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() 函數(shù)就比 datediff() 功能強多了,datediff() 只能計算兩個日期(date)之間相差的天數(shù)

總結(jié)

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

標簽: MySQL
主站蜘蛛池模板: 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司| 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 打包钢带,铁皮打包带,烤蓝打包带-高密市金和金属制品厂 | 方源木业官网-四川木门-全国木门专业品牌 | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 三轴曲线机-端子插拔力试验机|华杰仪器| 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 北京浩云律师事务所-法律顾问_企业法务_律师顾问_公司顾问 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | 泰安塞纳春天装饰公司【网站】| 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 | 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 耐热钢-耐磨钢-山东聚金合金钢铸造有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 飞象网 - 通信人每天必上的网站|