1、CURDATE()、CURTIME()、NOW()
CURDATE():系统当前日期
CURTIME():系统当前时间
NOW():当前时间
SELECT
CURDATE() AS 系统当前日期,
CURTIME() AS 系统当前时间,
NOW() AS 当前时间,
CONCAT(CURDATE(), ' ', CURTIME()) AS 拼接系统当前日期和当前时间 ;
使用 CONCAT(str1,str2,.....) 函数拼接 系统当前日期、系统当前时间得到的结果和 NOW() 函数的结果是一致的
2、STR_TO_DATE(str,format)
STR_TO_DATE 函数将 str 转化为日期类型的数据, format 表示转化后的格式
// 注意: 前后的格式要匹配
SELECT STR_TO_DATE('2021年07月09日', '%Y年%m月%d日');
SELECT STR_TO_DATE('2021年07月09日11时:22分:33秒','%Y年%m月%d日%H时:%i分:%s秒');
SELECT STR_TO_DATE('2021-07-09', '%Y-%m-%d');
SELECT STR_TO_DATE('2021-07-09 14:15:16', '%Y-%m-%d %H:%i:%s');
SELECT STR_TO_DATE('2021/07/09', '%Y/%m/%d');
SELECT STR_TO_DATE('2021/07/09 14:15:16', '%Y/%m/%d %H:%i:%s');
3、DATE_FORMAT(date,format)
DATE_FORMAT 函数将日期转换成 str 类型的数据,format 表示转化后的格式
其使用方式和 STR_TO_DATE(str,format) 类似
下面这三种查询得到的结果是相同的
SELECT * FROM bu_balance_change_detail
WHERE
update_time >= STR_TO_DATE('2021-07-08 17:46:10','%Y-%m-%d %H:%i:%s')
AND
update_time <= STR_TO_DATE('2021-07-08 19:25:52','%Y-%m-%d %H:%i:%s');
SELECT * FROM bu_balance_change_detail
WHERE
update_time >= DATE_FORMAT('2021-07-08 17:46:10','%Y-%m-%d %H:%i:%s')
AND
update_time <= DATE_FORMAT('2021-07-08 19:25:52','%Y-%m-%d %H:%i:%s');
SELECT * FROM bu_balance_change_detail
WHERE
update_time >= '2021-07-08 17:46:10'
AND
update_time <= '2021-07-08 19:25:52';
4、format 常用格式
%Y:代表 4 位的年份
%y:代表 2 位的年份
%m:代表月,格式为 (01……12)
%c:代表月,格式为 (1……12)
%d:代表月份中的天数,格式为 (00…31)
%e:代表月份中的天数,格式为 (0……31)
%H:代表小时,格式为 (00……23)
%k:代表 小时,格式为 (0……23)
%h:代表小时,格式为 (01……12)
%I:代表小时,格式为 (01……12)
%l: 代表小时,格式为 (1……12)
%i:代表分钟, 格式为 (00……59) (只有这一个代表分钟,大写的I 不代表分钟代表小时)
%r:代表 时间,格式为12 小时 (hh:mm:ss [AP]M)
%T:代表 时间,格式为24 小时 (hh:mm:ss)
%S:代表 秒,格式为 (00……59)
%s:代表 秒,格式为 (00……59)