update操作及日期函数

UPDATE sr_main
SET mjzjsrq = CASE
WHEN mdblx = '2' THEN
DATE_FORMAT(
date_add(curdate(), INTERVAL 3 MONTH),
'%Y-%m-%d'
)
ELSE
DATE_FORMAT(
date_add(curdate(), INTERVAL 1 YEAR),
'%Y-%m-%d'
)
END
WHERE
pk_sr_main = '1069415372366028800';
-------------------------------------
select curdate();-- 2020-08-12

date_add() 函数向日期添加指定的时间间隔。

INTERVAL :取间隔
select DATE_FORMAT(
date_add(curdate(), INTERVAL 3 MONTH),
'%Y-%m-%d'
);-- 2020-11-12

---------------------------------------------

日期函数归纳

-- 计算时间差:入参必须位YYYY-MM-DD
select TIMESTAMPDIFF(MONTH,'2008-11-28','2008-11-29') ;
-- 2020-11-14 14:36:00 2020-11-14 14:36:00
SELECT NOW(),CURDATE(),CURTIME();
-- 建表时字段的默认为NOW()
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (OrderId)
)
INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese');
select * from Orders; -- 0 Jarlsberg Cheese 2020-11-14 14:51:21
-- DATE() 函数提取日期或日期/时间表达式的日期部分。
SELECT OrderId,ProductName, DATE(OrderDate) AS OrderDate FROM Orders WHERE OrderId=0; -- 0 Jarlsberg Cheese 2020-11-14
SELECT OrderId,ProductName, SUBSTR(OrderDate,1,10) AS OrderDate FROM Orders WHERE OrderId=0;-- 0 Jarlsberg Cheese 2020-11-14
-- DATE_ADD() 函数向日期添加指定的时间间隔;往后加45天;DAY,WEEK,MONTH,YEAR。
SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate FROM Orders;-- 0 2020-12-29 14:51:21
-- DATE_SUB() 函数从日期减去指定的时间间隔;往前退5天;DAY,WEEK,MONTH,YEAR;。
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate FROM Orders;-- 0 2020-11-09 14:51:21
-- DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
select NOW(); -- 2020-11-14 15:12:08
select DATE_FORMAT(NOW(),'%Y-%m-%d');-- 2020-11-14
select DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s'); -- 2020-11-14 15:12:56

posted @ 2020-08-12 14:37  武魂95级蓝银草  阅读(972)  评论(0编辑  收藏  举报