前言
以下是 MySQL 中一些常用的日期和时间函数,包括它们的用法、参数类型和期望的结果。
NOW()
返回当前日期和时间。
参数:无
结果类型:
DATETIME
示例:
SELECT NOW(); -- 结果: '2023-04-01 12:45:31' (取决于查询时的实际日期和时间)
CURDATE()
返回当前日期。
参数:无
结果类型:
DATE
示例:
SELECT CURDATE(); -- 结果: '2023-04-01' (取决于查询时的实际日期)
CURTIME()
返回当前时间。
参数:无
结果类型:
TIME
示例:
SELECT CURTIME(); -- 结果: '12:45:31' (取决于查询时的实际时间)
DATE_ADD(date, INTERVAL expr type)
在日期 date
上加上一个时间间隔 expr
。
参数:
date
是一个日期或日期时间表达式;expr
是你希望添加的时间间隔数值;type
是间隔的类型(比如,DAY
,MONTH
,YEAR
,HOUR
, 等)。结果类型:与
date
参数类型相同
示例:
SELECT DATE_ADD('2023-04-01', INTERVAL 1 DAY); -- 结结果: '2023-04-02'
DATE_SUB(date, INTERVAL expr type)
从日期 date
中减去一个时间间隔 expr
。
参数:与
DATE_ADD
相同。结果类型:与
date
参数类型相同
示例:
SELECT DATE_SUB('2023-04-01', INTERVAL 1 MONTH); -- 结果: '2023-03-01'
DATEDIFF(expr1, expr2)
返回两个日期之间的天数差。
参数:
expr1
和expr2
都是日期表达式。结果类型:
INT
示例:
SELECT DATEDIFF('2023-04-01', '2023-01-01'); -- 结果: 90
YEAR(date)
从日期 date
中提取年份。
参数:
date
是日期或日期时间表达式。结果类型:
INT
示例:
SELECT YEAR('2023-04-01'); -- 结果: 2023
MONTH(date)
从日期 date
中提取月份。
参数:与
YEAR
相同。结果类型:
INT
示例:
SELECT MONTH('2023-04-01'); -- 结果: 4
DAY(date)
从日期 date
中提取天。
参数:与
YEAR
相同。结果类型:
INT
示例:
SELECT DAY('2023-04-01'); -- 结果: 1
HOUR(time)
从时间 time
中提取小时部分。
参数:
time
是时间或日期时间表达式。结果类型:
INT
示例:
SELECT HOUR('12:45:31'); -- 结果: 12
MINUTE(time)
从时间 time
中提取分钟部分。
参数:与
HOUR
相同。结果类型:
INT
示例:
SELECT MINUTE('12:45:31'); -- 结果: 45
SECOND(time)
从时间 time
中提取秒部分。
参数:与
HOUR
相同。结果类型:
INT
示例:
SELECT SECOND('12:45:31'); -- 结果: 31
请注意,以上结果取决于实际查询执行的时间和日期。在实际的数据库操作中,通常会使用列名作为参数,而不是直接使用硬编码的日期或时间值。例如:
SELECT YEAR(birthdate) FROM employees;
这将返回 employees
表中每位员工的 birthdate
列的年份。日期和时间函数在处理数据时非常有用,特别是当你需要对日期和时间进行操作或计算时。