日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL之日期时间处理函数_MySQL之日期时间处理函数

發布時間:2024/1/23 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL之日期时间处理函数_MySQL之日期时间处理函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文給大家分享的是MySQL之日期時間處理函數 ,非常的詳細,也很實用,非常適合初學者,有需要的小伙伴參考下。

以下基本包含MySQL所有日期時間函數-- MySQL日期時間處理函數

-- 當前日期:2017-05-12(突然發現今天512,是不是會拉防空警報)

SELECT NOW() FROM DUAL;-- 當前日期時間:2017-05-12 11:41:47

-- 在MySQL里也存在和Oracle里類似的dual虛擬表:官方聲明純粹是為了滿足select ... from...這一習慣問題,mysql會忽略對該表的引用。

-- 那么MySQL中就不用DUAL了吧。

SELECT NOW();-- 當前日期時間:2017-05-12 11:41:55

-- 除了 now() 函數能獲得當前的日期時間外,MySQL 中還有下面的函數:

SELECT CURRENT_TIMESTAMP();-- 2017-05-15 10:19:31

SELECT CURRENT_TIMESTAMP;-- 2017-05-15 10:19:51

SELECT LOCALTIME();-- 2017-05-15 10:20:00

SELECT LOCALTIME;-- 2017-05-15 10:20:10

SELECT LOCALTIMESTAMP();-- 2017-05-15 10:20:21(v4.0.6)

SELECT LOCALTIMESTAMP;-- 2017-05-15 10:20:30(v4.0.6)

-- 這些日期時間函數,都等同于 now()。鑒于 now() 函數簡短易記,建議總是使用 now()來替代上面列出的函數。

SELECT SYSDATE();-- 當前日期時間:2017-05-12 11:42:03

-- sysdate() 日期時間函數跟 now() 類似,

-- 不同之處在于:now() 在執行開始時值就得到了;sysdate() 在函數執行時動態得到值。

-- 看下面的例子就明白了:

SELECT NOW(), SLEEP(3), NOW();

SELECT SYSDATE(), SLEEP(3), SYSDATE();

SELECT CURDATE();-- 當前日期:2017-05-12

SELECT CURRENT_DATE();-- 當前日期:等同于 CURDATE()

SELECT CURRENT_DATE;-- 當前日期:等同于 CURDATE()

SELECT CURTIME();-- 當前時間:11:42:47

SELECT CURRENT_TIME();-- 當前時間:等同于 CURTIME()

SELECT CURRENT_TIME;-- 當前時間:等同于 CURTIME()

-- 獲得當前 UTC 日期時間函數

SELECT UTC_TIMESTAMP(), UTC_DATE(), UTC_TIME()

-- MySQL 獲得當前時間戳函數:current_timestamp, current_timestamp()

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP();-- 2017-05-15 10:32:21 | 2017-05-15 10:32:21

-- MySQL 日期時間 Extract(選取) 函數

SET @dt = '2017-05-15 10:37:14.123456';

SELECT DATE(@dt);-- 獲取日期:2017-05-15

SELECT TIME('2017-05-15 10:37:14.123456');-- 獲取時間:10:37:14.123456

SELECT YEAR('2017-05-15 10:37:14.123456');-- 獲取年份

SELECT MONTH('2017-05-15 10:37:14.123456');-- 獲取月份

SELECT DAY('2017-05-15 10:37:14.123456');-- 獲取日

SELECT HOUR('2017-05-15 10:37:14.123456');-- 獲取時

SELECT MINUTE('2017-05-15 10:37:14.123456');-- 獲取分

SELECT SECOND('2017-05-15 10:37:14.123456');-- 獲取秒

SELECT MICROSECOND('2017-05-15 10:37:14.123456');-- 獲取毫秒

SELECT QUARTER('2017-05-15 10:37:14.123456');-- 獲取季度

SELECT WEEK('2017-05-15 10:37:14.123456');-- 20 (獲取周)

SELECT WEEK('2017-05-15 10:37:14.123456', 7);-- ****** 測試此函數在MySQL5.6下無效

SELECT WEEKOFYEAR('2017-05-15 10:37:14.123456');-- 同week()

SELECT DAYOFYEAR('2017-05-15 10:37:14.123456');-- 135 (日期在年度中第幾天)

SELECT DAYOFMONTH('2017-05-15 10:37:14.123456');-- 5 (日期在月度中第幾天)

SELECT DAYOFWEEK('2017-05-15 10:37:14.123456');-- 2 (日期在周中第幾天;周日為第一天)

SELECT WEEKDAY('2017-05-15 10:37:14.123456');-- 0

SELECT WEEKDAY('2017-05-21 10:37:14.123456');-- 6(與dayofweek()都表示日期在周的第幾天,只是參考標準不同,weekday()周一為第0天,周日為第6天)

SELECT YEARWEEK('2017-05-15 10:37:14.123456');-- 201720(年和周)

SELECT EXTRACT(YEAR FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(MONTH FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(DAY FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(HOUR FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(MINUTE FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(SECOND FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(MICROSECOND FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(QUARTER FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(WEEK FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(YEAR_MONTH FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(DAY_HOUR FROM '2017-05-15 10:37:14.123456');

SELECT EXTRACT(DAY_MINUTE FROM '2017-05-15 10:37:14.123456');-- 151037(日時分)

SELECT EXTRACT(DAY_SECOND FROM '2017-05-15 10:37:14.123456');-- 15103714(日時分秒)

SELECT EXTRACT(DAY_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 15103714123456(日時分秒毫秒)

SELECT EXTRACT(HOUR_MINUTE FROM '2017-05-15 10:37:14.123456');-- 1037(時分)

SELECT EXTRACT(HOUR_SECOND FROM '2017-05-15 10:37:14.123456');-- 103714(時分秒)

SELECT EXTRACT(HOUR_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 103714123456(日時分秒毫秒)

SELECT EXTRACT(MINUTE_SECOND FROM '2017-05-15 10:37:14.123456');-- 3714(分秒)

SELECT EXTRACT(MINUTE_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 3714123456(分秒毫秒)

SELECT EXTRACT(SECOND_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 14123456(秒毫秒)

-- MySQL Extract() 函數除了沒有date(),time() 的功能外,其他功能一應具全。

-- 并且還具有選取‘day_microsecond' 等功能。

-- 注意這里不是只選取 day 和 microsecond,而是從日期的 day 部分一直選取到 microsecond 部分。

SELECT DAYNAME('2017-05-15 10:37:14.123456');-- Monday(返回英文星期)

SELECT MONTHNAME('2017-05-15 10:37:14.123456');-- May(返回英文月份)

SELECT LAST_DAY('2016-02-01');-- 2016-02-29 (返回月份中最后一天)

SELECT LAST_DAY('2016-05-01');-- 2016-05-31

-- DATE_ADD(date,INTERVAL expr type) 從日期加上指定的時間間隔

-- type參數可參考:http://www.w3school.com.cn/sql/func_date_sub.asp

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 YEAR);-- 表示:2018-05-15 10:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 QUARTER);-- 表示:2017-08-15 10:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MONTH);-- 表示:2017-06-15 10:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 WEEK);-- 表示:2017-05-22 10:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 DAY);-- 表示:2017-05-16 10:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 HOUR);-- 表示:2017-05-15 11:37:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MINUTE);-- 表示:2017-05-15 10:38:14.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 SECOND);-- 表示:2017-05-15 10:37:15.123456

SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MICROSECOND);-- 表示:2017-05-15 10:37:14.123457

-- DATE_SUB(date,INTERVAL expr type) 從日期減去指定的時間間隔

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 YEAR);-- 表示:2016-05-15 10:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 QUARTER);-- 表示:2017-02-15 10:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MONTH);-- 表示:2017-04-15 10:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 WEEK);-- 表示:2017-05-08 10:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 DAY);-- 表示:2017-05-14 10:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 HOUR);-- 表示:2017-05-15 09:37:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MINUTE);-- 表示:2017-05-15 10:36:14.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 SECOND);-- 表示:2017-05-15 10:37:13.123456

SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MICROSECOND);-- 表示:2017-05-15 10:37:14.123455

-- 經特殊日期測試,DATE_SUB(date,INTERVAL expr type)可放心使用

SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);-- 前一天:2017-05-11

SELECT DATE_SUB(CURDATE(),INTERVAL -1 DAY);-- 后一天:2017-05-13

SELECT DATE_SUB(CURDATE(),INTERVAL 1 MONTH);-- 一個月前日期:2017-04-12

SELECT DATE_SUB(CURDATE(),INTERVAL -1 MONTH);-- 一個月后日期:2017-06-12

SELECT DATE_SUB(CURDATE(),INTERVAL 1 YEAR);-- 一年前日期:2016-05-12

SELECT DATE_SUB(CURDATE(),INTERVAL -1 YEAR);-- 一年后日期:20178-06-12

-- MySQL date_sub() 日期時間函數 和 date_add() 用法一致,并且可以用INTERNAL -1 xxx的形式互換使用;

-- 另外,MySQL 中還有兩個函數 subdate(), subtime(),建議,用 date_sub() 來替代。

-- MySQL 另類日期函數:period_add(P,N), period_diff(P1,P2)

-- 函數參數“P” 的格式為“YYYYMM” 或者 “YYMM”,第二個參數“N” 表示增加或減去 N month(月)。

-- MySQL period_add(P,N):日期加/減去N月。

SELECT PERIOD_ADD(201705,2), PERIOD_ADD(201705,-2);-- 201707 20170503

-- period_diff(P1,P2):日期 P1-P2,返回 N 個月。

SELECT PERIOD_DIFF(201706, 201703);--

-- datediff(date1,date2):兩個日期相減 date1 - date2,返回天數

SELECT DATEDIFF('2017-06-05','2017-05-29');-- 7

-- TIMEDIFF(time1,time2):兩個日期相減 time1 - time2,返回 TIME 差值

SELECT TIMEDIFF('2017-06-05 19:28:37', '2017-06-05 17:00:00');-- 02:28:37

-- MySQL日期轉換函數

SELECT TIME_TO_SEC('01:00:05'); -- 3605

SELECT SEC_TO_TIME(3605);-- 01:00:05

-- MySQL (日期、天數)轉換函數:to_days(date), from_days(days)

SELECT TO_DAYS('0000-00-00'); -- NULL

SELECT TO_DAYS('2017-06-05'); -- 736850

SELECT FROM_DAYS(0); -- '0000-00-00'

SELECT FROM_DAYS(736850); -- '2017-06-05'

-- MySQL Str to Date (字符串轉換為日期)函數:str_to_date(str, format)

SELECT STR_TO_DATE('06.05.2017 19:40:30', '%m.%d.%Y %H:%i:%s');-- 2017-06-05 19:40:30

SELECT STR_TO_DATE('06/05/2017', '%m/%d/%Y'); -- 2017-06-05

SELECT STR_TO_DATE('2017/12/3','%Y/%m/%d') -- 2017-12-03

SELECT STR_TO_DATE('20:09:30', '%h:%i:%s') -- NULL(超過12時的小時用小寫h,得到的結果為NULL)

-- 日期時間格式化

SELECT DATE_FORMAT('2017-05-12 17:03:51', '%Y年%m月%d日 %H時%i分%s秒');-- 2017年05月12日 17時03分51秒(具體需要什么格式的數據根據實際情況來;小寫h為12小時制;)

SELECT TIME_FORMAT('2017-05-12 17:03:51', '%Y年%m月%d日 %H時%i分%s秒');-- 0000年00月00日 17時03分51秒(time_format()只能用于時間的格式化)

-- STR_TO_DATE()和DATE_FORMATE()為互逆操作

-- MySQL 獲得國家地區時間格式函數:get_format()

-- MySQL get_format() 語法:get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal'

-- MySQL get_format() 用法的全部示例:

SELECT GET_FORMAT(DATE,'usa'); -- '%m.%d.%Y'

SELECT GET_FORMAT(DATE,'jis'); -- '%Y-%m-%d'

SELECT GET_FORMAT(DATE,'iso'); -- '%Y-%m-%d'

SELECT GET_FORMAT(DATE,'eur'); -- '%d.%m.%Y'

SELECT GET_FORMAT(DATE,'internal'); -- '%Y%m%d'

SELECT GET_FORMAT(DATETIME,'usa'); -- '%Y-%m-%d %H.%i.%s'

SELECT GET_FORMAT(DATETIME,'jis'); -- '%Y-%m-%d %H:%i:%s'

SELECT GET_FORMAT(DATETIME,'iso'); -- '%Y-%m-%d %H:%i:%s'

SELECT GET_FORMAT(DATETIME,'eur'); -- '%Y-%m-%d %H.%i.%s'

SELECT GET_FORMAT(DATETIME,'internal'); -- '%Y%m%d%H%i%s'

SELECT GET_FORMAT(TIME,'usa'); -- '%h:%i:%s %p'

SELECT GET_FORMAT(TIME,'jis'); -- '%H:%i:%s'

SELECT GET_FORMAT(TIME,'iso'); -- '%H:%i:%s'

SELECT GET_FORMAT(TIME,'eur'); -- '%H.%i.%s'

SELECT GET_FORMAT(TIME,'internal'); -- '%H%i%s'

-- MySQL 拼湊日期、時間函數:makdedate(year,dayofyear), maketime(hour,minute,second)

SELECT MAKEDATE(2017,31); -- '2017-01-31'

SELECT MAKEDATE(2017,32); -- '2017-02-01'

SELECT MAKETIME(19,52,35); -- '19:52:35'

-- MySQL 時區(timezone)轉換函數:convert_tz(dt,from_tz,to_tz)

SELECT CONVERT_TZ('2017-06-05 19:54:12', '+08:00', '+00:00'); -- 2017-06-05 11:54:12

-- MySQL (Unix 時間戳、日期)轉換函數

-- unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)

-- 將具體時間時間轉為timestamp

SELECT UNIX_TIMESTAMP();-- 當前時間的時間戳:1494815779

SELECT UNIX_TIMESTAMP('2017-05-15');-- 指定日期的時間戳:1494777600

SELECT UNIX_TIMESTAMP('2017-05-15 10:37:14');-- 指定日期時間的時間戳:1494815834

-- 將時間戳轉為具體時間

SELECT FROM_UNIXTIME(1494815834);-- 2017-05-15 10:37:14

SELECT FROM_UNIXTIME(1494815834, '%Y年%m月%d日 %h時%分:%s秒');-- 獲取時間戳對應的格式化日期時間

-- MySQL 時間戳(timestamp)轉換、增、減函數

SELECT TIMESTAMP('2017-05-15');-- 2017-05-15 00:00:00

SELECT TIMESTAMP('2017-05-15 08:12:25', '01:01:01');-- 2017-05-15 09:13:26

SELECT DATE_ADD('2017-05-15 08:12:25', INTERVAL 1 DAY);-- 2017-05-16 08:12:25

SELECT TIMESTAMPADD(DAY, 1, '2017-05-15 08:12:25');-- 2017-05-16 08:12:25; MySQL timestampadd() 函數類似于 date_add()。

SELECT TIMESTAMPDIFF(YEAR, '2017-06-01', '2016-05-15');-- -1

SELECT TIMESTAMPDIFF(MONTH, '2017-06-01', '2016-06-15');-- -11

SELECT TIMESTAMPDIFF(DAY, '2017-06-01', '2016-06-15');-- -351

SELECT TIMESTAMPDIFF(HOUR, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -8432

SELECT TIMESTAMPDIFF(MINUTE, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -505932

SELECT TIMESTAMPDIFF(SECOND, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -30355945

總結

以上是生活随笔為你收集整理的MySQL之日期时间处理函数_MySQL之日期时间处理函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人77亚洲精品www | 少妇人妻精品一区二区三区 | 4438五月天| 午夜在线观看视频 | 欧美一级免费在线 | 国产精品自拍片 | 国产欧美久久久久久 | 97人妻天天摸天天爽天天 | 亚洲小说网 | 91麻豆精品国产91久久久久久 | 自拍三级视频 | 精东传媒在线 | 亚洲国产精品久久久久婷蜜芽 | 中文字幕在线免费观看 | 少妇高潮一区二区三区99刮毛 | 一区二区视频 | 香蕉视频黄色 | 国产一区二区精品久久 | 黑人又大又粗又长 | 免费在线观看日韩 | 欧美日韩一区在线播放 | 狠狠插狠狠干 | 91一区二区三区 | 欧美大片免费播放器 | 亚洲欧美日韩网站 | 成人福利视频在线观看 | 国产精品福利一区二区三区 | 欧美日韩精品电影 | 狠狠干2019| 中文字幕人妻互换av久久 | 春意影院福利社 | 中文视频在线观看 | 三上悠亚ed2k | 亚洲欧美日韩精品在线观看 | 日韩美女激情视频 | ass精品国模裸体欣赏pics | 一区二区三区不卡视频 | 五月激情小说 | 亚洲天堂影院在线观看 | 中国毛片网站 | 99免费看| 黄在线免费 | 伊人日本 | 深夜视频一区二区 | 欧美性色网站 | 欧美成人国产 | 国产精品8888| 一区二区视频观看 | 久久人人爽人人爽人人片亚洲 | 一区二区三区日韩在线 | 五月婷婷亚洲 | 影音先锋亚洲成aⅴ人在 | 国产色在线视频 | 91尤物视频在线观看 | 91色网站 | 久久一区av | 亚洲精品美女在线观看 | 国产伦理自拍 | 亚洲一区二区三区影院 | 亚洲精品国产精 | 美丽的姑娘在线观看免费 | 巨大乳の揉んで乳榨り奶水 | www黄色com | 五月激情小说 | 日韩成人福利视频 | 妓院一钑片免看黄大片 | 中文字幕在线免费看线人 | 久久国产精彩视频 | 亚洲高清视频一区 | 日本久久久久久久久久 | 日本高清不卡在线 | 天天操天天操天天 | 日韩中文字幕av电影 | 人妻熟女一区二区三区app下载 | 日本在线一级片 | 欧美一区二区不卡视频 | 狠狠干在线 | 一区二三区 | av毛片在线播放 | 91九色丨porny丨国产jk | 精品视频区 | 久久人妻无码aⅴ毛片a片app | 亚洲精品喷潮一区二区三区 | 国产一区二区在线播放 | 成人综合区| 欧美黑人疯狂性受xxxxx野外 | 国产免费内射又粗又爽密桃视频 | 精品不卡一区二区 | 日韩av高清 | 亚洲国产成人无码av在线 | 日韩在线播放av | 精品视频一区二区三区 | 91干视频 | 亚洲欧美日本在线观看 | 91污在线观看 | hitomi一区二区三区精品 | 91高潮大合集爽到抽搐 | 丰满双乳秘书被老板狂揉捏 | 综合亚洲网 |