MySql Date函數
阿新 • • 發佈:2018-06-27
想要 TE 存儲 minute 等等 weight create -- 其中
下面是MySQL中最重要的內建函數
函數 描述 NOW() 返回當前的日期和時間
1 NOW() 返回當前的日期和時間。 2 語法 3 NOW() 4 5 -- 實例 6 7 -- 下面是 SELECT 語句: 8 SELECT NOW(),CURDATE(),CURTIME() 9 10 結果如下所示: 11 NOW() CURDATE() CURTIME() 12 2018-06-27 14:25:34 2018-06-27 14:25:34 13 -- 實例 14 15 -- 下面的 SQL 創建帶有日期時間列(OrderDate)的 "Orders" 表:View Code16 CREATE TABLE Orders 17 ( 18 OrderId int NOT NULL, 19 ProductName varchar(50) NOT NULL, 20 OrderDate datetime NOT NULL DEFAULT NOW(), 21 PRIMARY KEY (OrderId) 22 ) 23 24 -- 請註意,OrderDate 列規定 NOW() 作為默認值。作為結果,當您向表中插入行時,當前日期和時間自動插入列中。 25 26 -- 現在,我們想要在 "Orders" 表中插入一條記錄: 27 INSERT INTO Orders (ProductName) VALUES(‘Jarlsberg Cheese‘) 28 29 -- "Orders" 表將如下所示: 30 OrderId ProductName OrderDate 31 1 Jarlsberg Cheese 2018-06-11 14:36:55
CURDATE() 返回當前的日期
1 -- CURDATE() 返回當前的日期。 2 3 -- 實例 4 5 -- 下面是 SELECT 語句: 6 SELECT NOW(),CURDATE(),CURTIME() 7 8 結果如下所示: 9 NOW() CURDATE() CURTIME()View Code10 2018-06-27 14:25:34 2018-06-27 14:25:34 11 -- 實例 12 13 -- 下面的 SQL 創建帶有日期時間列(OrderDate)的 "Orders" 表: 14 CREATE TABLE Orders 15 ( 16 OrderId int NOT NULL, 17 ProductName varchar(50) NOT NULL, 18 OrderDate datetime NOT NULL DEFAULT CURDATE(), 19 PRIMARY KEY (OrderId) 20 ) 21 22 -- 請註意,OrderDate 列規定 CURDATE() 作為默認值。作為結果,當您向表中插入行時,當前日期和時間自動插入列中。 23 24 -- 現在,我們想要在 "Orders" 表中插入一條記錄: 25 INSERT INTO Orders (ProductName) VALUES (‘Jarlsberg Cheese‘) 26 27 -- "Orders" 表將如下所示: 28 OrderId ProductName OrderDate 29 1 Jarlsberg Cheese 2018-06-11 14:36:55
CURTIME() 返回當前的時間
1 -- CURTIME() 返回當前的日期。 2 3 -- 實例 4 5 -- 下面是 SELECT 語句: 6 SELECT NOW(),CURDATE(),CURTIME() 7 8 -- 結果如下所示: 9 NOW() CURDATE() CURTIME() 10 2018-06-27 14:25:34 2018-06-27 14:25:34View Code
DATE() 提取日期或日期/時間表達式的日期部分
1 -- DATE() 函數提取日期或日期/時間表達式的日期部分。 2 -- 實例 3 4 -- 假設我們有如下的 "Orders" 表: 5 OrderId ProductName OrderDate 6 1 Jarlsberg Cheese 2018-06-27 14:53:44.657 7 8 -- 下面是 SELECT 語句: 9 SELECT ProductName, DATE(OrderDate) AS OrderDate 10 FROM Orders 11 WHERE OrderId=1 12 13 -- 結果如下所示: 14 ProductName OrderDate 15 Jarlsberg Cheese 2018-06-27View Code
EXTRACT() 返回日期/時間的單獨部分
1 -- EXTRACT() 函數用於返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。 2 -- 語法 3 -- EXTRACT(unit FROM date) 4 5 -- date 參數是合法的日期表達式。unit 參數可以是下列的值: 6 Unit 值 7 MICROSECOND 8 SECOND 9 MINUTE 10 HOUR 11 DAY 12 WEEK 13 MONTH 14 QUARTER 15 YEAR 16 SECOND_MICROSECOND 17 MINUTE_MICROSECOND 18 MINUTE_SECOND 19 HOUR_MICROSECOND 20 HOUR_SECOND 21 HOUR_MINUTE 22 DAY_MICROSECOND 23 DAY_SECOND 24 DAY_MINUTE 25 DAY_HOUR 26 YEAR_MONTH 27 28 -- 實例 29 30 -- 假設我們有如下的 "Orders" 表: 31 OrderId ProductName OrderDate 32 1 Jarlsberg Cheese 2018-06-2715:03:01 33 34 -- 下面是 SELECT 語句: 35 SELECT EXTRACT(YEAR FROM OrderDate) AS OrderYear, 36 EXTRACT(MONTH FROM OrderDate) AS OrderMonth, 37 EXTRACT(DAY FROM OrderDate) AS OrderDay, 38 FROM Orders 39 WHERE OrderId=1 40 41 -- 結果如下所示: 42 OrderYear OrderMonth OrderDay 43 2018 06 27View Code
DATE_ADD() 向日期添加指定的時間間隔
1 -- DATE_ADD() 函數向日期添加指定的時間間隔。 2 -- 語法 3 -- DATE_ADD(date,INTERVAL expr type) 4 5 -- date 參數是合法的日期表達式。expr 參數是您希望添加的時間間隔。 6 7 -- type 參數可以是下列值: 8 Type 值 9 MICROSECOND 10 SECOND 11 MINUTE 12 HOUR 13 DAY 14 WEEK 15 MONTH 16 QUARTER 17 YEAR 18 SECOND_MICROSECOND 19 MINUTE_MICROSECOND 20 MINUTE_SECOND 21 HOUR_MICROSECOND 22 HOUR_SECOND 23 HOUR_MINUTE 24 DAY_MICROSECOND 25 DAY_SECOND 26 DAY_MINUTE 27 DAY_HOUR 28 YEAR_MONTH 29 30 -- 實例 31 32 -- 假設我們有如下的 "Orders" 表: 33 OrderId ProductName OrderDate 34 1 Jarlsberg Cheese 2018-06-27 15:02:47 35 36 -- 現在,我們想要向 "OrderDate" 添加 45 天,這樣就可以找到付款日期。 37 38 -- 我們使用下面的 SELECT 語句: 39 SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate 40 FROM Orders 41 42 -- 結果: 43 OrderId OrderPayDate 44 1 2018-08-11 15:02:47View Code
DATE_SUB() 從日期減去指定的時間間隔
1 DATE_SUB() 函數從日期減去指定的時間間隔。 2 語法 3 DATE_SUB(date,INTERVAL expr type) 4 5 date 參數是合法的日期表達式。expr 參數是您希望添加的時間間隔。 6 7 type 參數可以是下列值: 8 Type 值 9 MICROSECOND 10 SECOND 11 MINUTE 12 HOUR 13 DAY 14 WEEK 15 MONTH 16 QUARTER 17 YEAR 18 SECOND_MICROSECOND 19 MINUTE_MICROSECOND 20 MINUTE_SECOND 21 HOUR_MICROSECOND 22 HOUR_SECOND 23 HOUR_MINUTE 24 DAY_MICROSECOND 25 DAY_SECOND 26 DAY_MINUTE 27 DAY_HOUR 28 YEAR_MONTH 29 30 實例 31 32 假設我們有如下的 "Orders" 表: 33 OrderId ProductName OrderDate 34 1 Jarlsberg Cheese 2018-06-27 15:02:47 35 36 現在,我們想要向 "OrderDate" 減去 5 天。 37 38 我們使用下面的 SELECT 語句: 39 SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate 40 FROM Orders 41 42 結果: 43 OrderId SubtractDate 44 1 2018-06-22 15:02:47View Code
DATEDIFF() 返回兩個日期之間的天數
1 DATEDUFF() 返回兩個日期之間的天數 2 實例: 3 4 SELECT DATEDIFF(‘2018-11-29‘,‘2018-11-30‘) AS DiffDate 5 6 結果: 7 DiffDate 8 -1View Code
DATE_FORMAT() 用不同的格式顯示日期/時間
1 DATE_FORMAT() 用不同的格式顯示日期/時間 2 3 實例: 4 SELECT DATE_FORMAT(NOW(),‘%b %d %Y %h:%i %p‘); 5 # DATE_FORMAT(NOW(),‘%b %d %Y %h:%i %p‘) 6 ‘Jun 27 2018 03:12 PM‘ 7 8 SELECT DATE_FORMAT(NOW(),‘%m-%d-%Y‘); 9 # DATE_FORMAT(NOW(),‘%m-%d-%Y‘) 10 ‘06-27-2018‘ 11 12 SELECT DATE_FORMAT(NOW(),‘%d %b %y‘); 13 # DATE_FORMAT(NOW(),‘%d %b %y‘) 14 ‘27 Jun 18‘ 15 16 SELECT DATE_FORMAT(NOW(),‘%d %b %Y %T:%f‘); 17 # DATE_FORMAT(NOW(),‘%d %b %Y %T:%f‘) 18 ‘27 Jun 2018 15:15:44:000000‘ 19 20 可以使用的格式有: 21 格式 描述 22 %a 縮寫星期名 23 %b 縮寫月名 24 %c 月,數值 25 %D 帶有英文前綴的月中的天 26 %d 月的天,數值(00-31) 27 %e 月的天,數值(0-31) 28 %f 微秒 29 %H 小時(00-23) 30 %h 小時(01-12) 31 %I 小時(01-12) 32 %i 分鐘,數值(00-59) 33 %j 年的天(001-366) 34 %k 小時(0-23) 35 %l 小時(1-12) 36 %M 月名 37 %m 月,數值(00-12) 38 %p AM 或 PM 39 %r 時間,12-小時(hh:mm:ss AM 或 PM) 40 %S 秒(00-59) 41 %s 秒(00-59) 42 %T 時間, 24-小時(hh:mm:ss) 43 %U 周(00-53)星期日是一周的第一天 44 %u 周(00-53)星期一是一周的第一天 45 %V 周(01-53)星期日是一周的第一天,與 %X 使用 46 %v 周(01-53)星期一是一周的第一天,與 %x 使用 47 %W 星期名 48 %w 周的天(0=星期日, 6=星期六) 49 %X 年,其中的星期日是周的第一天,4 位,與 %V 使用 50 %x 年,其中的星期一是周的第一天,4 位,與 %v 使用 51 %Y 年,4 位 52 %y 年,2 位View Code
下面是數據庫中存儲日期的數據類型
DATE - 格式:YYYY-MM-DD DATETIME - 格式:YYYY-MM-DD HH:MM:SS TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS YEAR - 格式:YYYY 或 YY
總結:日期函數有點亂,其實我覺得記住幾個經常用到的就可以了,不一定非要全部記住,必定誰都沒有過目不忘的本領,而且也不會出題考試,工作中用到哪個記不住查一下就可以了
MySql Date函數