MySQL函数
DATE_ADD函数
-
DATE_ADD() 函数向日期添加指定的时间间隔。 -
·DATE_ADD(date,INTERVAL expr type) -
date 参数是合法的日期表达式。 -
expr 参数是您希望添加的时间间隔。 -
type常见的值为HOUR,DAY,WEEK,MONTH,YEAR -
向 “OrderDate” 添加 45 天
SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate
FROM Orders
DATE_SUB() 函数
- DATE_SUB() 函数从日期减去指定的时间间隔。
DATE_SUB(date,INTERVAL expr type)· - 和DATE_ADD函数参数一致
- 向 “OrderDate” 减去 5 天
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
FROM Orders
DATEDIFF() 函数
- DATEDIFF() 函数返回两个日期之间的天数。
DATEDIFF(date1,date2) - date1 和 date2 参数是合法的日期或日期/时间表达式。
- 只有值的日期部分参与计算。
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
结果是1
SELECT DATEDIFF('2008-11-29','2008-11-30') AS DiffDate
结果是-1
DATE_FORMAT() 函数
- DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date,format) - date 参数是合法的日期。format 规定日期/时间的输出格式。
format常见的值
- %c 表示月,数值
- %H 小时(00-23)
- %h 小时(01-12)
- %i 分钟,数值(00-59)
- %k 小时(0-23)
- %S 秒(00-59)
NOW() 函数
-
NOW() 返回当前的日期和时间。 -
SELECT NOW(),CURDATE(),CURTIME() -
创建带有日期时间列(OrderDate)的 “Orders” 表:
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (OrderId)
)
- OrderDate 列规定 NOW() 作为默认值。作为结果,向表中插入行时,当前日期和时间自动插入列中。
- 在 “Orders” 表中插入一条记录:
INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese') 将会默认插入带有时间的数据
CURDATE() 函数
-
CURDATE() 返回当前的日期。 -
CURDATE() -
SELECT NOW(),CURDATE(),CURTIME()
创建带有日期时间列(OrderDate)的 “Orders” 表:
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (OrderId)
)
- OrderDate 列规定 CURDATE() 作为默认值。作为结果,当向表中插入行时,当前日期和时间自动插入列中。
- 在 “Orders” 表中插入一条记录:
INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese') 会默认插入带有时间的数据
CURTIME() 函数
- CURTIME() 返回当前的时间。
SELECT NOW(),CURDATE(),CURTIME()
DATE()函数
- DATE() 函数提取日期或日期/时间表达式的日期部分。
DATE(date) ;date 参数是合法的日期表达式。
SELECT ProductName, DATE(OrderDate) AS OrderDate
FROM Orders
WHERE OrderId=1
EXTRACT() 函数
- EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
EXTRACT(unit FROM date) - date是合法的日期表达式: YEAR,MONTH,DAY,WEEK,HOUR,MINUTE
字符串连接函数
CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。- 如果所有参数均为非二进制字符串,则结果为非二进制字符串。
- 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
- 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast:
SELECT CONCAT(CAST(int_col AS CHAR), char_col) - concat函数可以连接一个或者多个字符串:
select concat('11','22','33'); - MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
mysql> select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
字符串截取函数
从左开始截取字符串
- left(str, length) left(被截取字段,截取长度)
select left(content,200) as abstract from my_content_t
从右开始截取字符串
- right(str, length) right(被截取字段,截取长度)
- select right(content,200) as abstract from my_content_t
**截取字符串 **
- substring(str, pos) :substring(被截取字段,从第几位开始截取)
- substring(str, pos, length) :substring(被截取字段,从第几位开始截取,截取长度)
select substring(content,5) as abstract from my_content_t
select substring(content,5,200) as abstract from my_content_t
- 如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)
**按关键字截取字符串 **
- substring_index(str,delim,count) :substring_index(被截取字段,分隔符,关键字出现的次数)
select substring_index("ryxryx","r",2) as abstract from wiki_user
substr()函数
- 截取字符串:substr(string string,num start,num length);
- select substr(参数1,参数2,参数3) from 表名
- string为字符串;start为起始位置;length为长度。
- mysql中的start是从1开始的。
查出kename字段中第一次出现.之前的字符串
select kename,substr(kename,1,locate('.',kename)) as subkename from web_dev_api where 1;
|