MySQL常用函数
参考自:https://www.w3school.com.cn/sql/sql_dates.asp
1.NOW,CURDATE,CURTIME
NOW() 函数返回当前的日期和时间。
例子:
SELECT NOW(),CURDATE(),CURTIME()
NOW() | CURDATE() | CURTIME() |
---|---|---|
2020-10-12 13:52:12 | 2020-10-12 | 13:53:06 |
2.DATE
DATE() 函数返回日期或日期/时间表达式的日期部分。
假设我们有如下的表:
OrderId | ProductName | OrderDate |
---|---|---|
1 | ‘Computer’ | 2008-12-29 16:25:46.635 |
我们使用下面的 SELECT 语句:
SELECT ProductName, DATE(OrderDate) AS OrderDate
FROM Orders
WHERE OrderId=1
查询结果:
ProductName | OrderDate |
---|---|
‘Computer’ | 2008-12-29 |
3.DateDiff
DATEDIFF() 函数返回两个日期之间的天数。
语法:
DATEDIFF(date1,date2)
date1 和 date2 参数是合法的日期或日期/时间表达式。
例子:
SELECT DATEDIFF('2008-12-30','2008-12-29') 结果是1
SELECT DATEDIFF('2008-12-29','2008-12-30') 结果是-1
实例练习:
查询7天之内到期的订单
select *
from `order`
where DateDiff(end_time,NOW()) <= 7
and end_time >= NOW()
and `status` = 'CHECK_IN'
4.DATE_ADD
DATE_ADD() 函数向日期添加指定的时间间隔。
语法:
DATE_ADD(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND
MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND
DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH
假设我们有如下的表:
OrderId | ProductName | OrderDate |
---|---|---|
1 | ‘Computer’ | 2008-12-29 16:25:46.635 |
现在,我们希望向 “OrderDate” 添加 2 天,我们使用下面的 SELECT 语句:
SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders
结果:
OrderId | OrderPayDate |
---|---|
1 | 2008-12-31 16:25:46.635 |
实例练习:
查询7天之内到期的订单
select *
from `order`
where end_time <= DATE_ADD(NOW(),INTERVAL 7 DAY)
and end_time >= NOW()
and `status` = 'CHECK_IN'
5.DATE_SUB
用法与DATE_ADD相同。从日期减去指定的时间间隔。
6.CONCAT
用于将多个字符串连接成一个字符串
select u.`name`
from `user` u
where u.username = CONCAT('lao','zhang') -- 把where条件拼接成where u.username = laozhang