SQL—日期的函数
提示:本人新手,仅供参考,文章参考W3school文档
一、MySQL Date函数
1、NOW() 返回当前的日期和时间
INSERT INTO `student`(id,`name`,`password`,gmt_create)
VALUES(UUID(),'123','456',NOW())
2、CURDATE() 返回当前日期
INSERT INTO `student`(id,`name`,`password`,gmt_create)
VALUES(UUID(),'123','456',CURDATE())
3、CURTIME() 返回当前的时间
INSERT INTO `student`(id,`name`,`password`,gmt_create)
VALUES(UUID(),'123',CURTIME(),CURDATE())
4、DATE() 提取日期或日期/时间表达式的日期部分
INSERT INTO `student`(id,`name`,`password`,gmt_create)
VALUES(UUID(),'123',DATE(NOW()),CURDATE())
5、EXTRACT() 返回日期/时间按的单独部分
基本语法:EXTRACT(Unit参数 FROM DATE类型值)
参数集:
SELECT EXTRACT(YEAR FROM gmt_create) AS `year`
FROM `student` WHERE
id = '31758fe2-fcda-11ea-99cb-8c16454db37c'
结果:2020
6、DATE_ADD() 给日期添加指定的时间间隔
参数集:
实例需求:用户购买的服务在还有一个月就即将过期时候发送短信提醒其续费
SELECT * FROM `student` WHERE gmt_create
BETWEEN NOW() AND DATE_ADD(NOW(),INTERVAL 1 MONTH)
//数值为负的化也就是减去对应时间,同DATE_SUB()函数
注意:BETWEEN AND语法必须左小右大
7、DATE_SUB() 从日期减去指定的时间间隔
与DATE_ADD同理
8、DATEDIFF() 返回两个日期之间的天数
该函数是前减后
SELECT DATEDIFF('2020-09-30','2020-10-11') AS days
//结果:-11
9、DATE_FORMAT() 用不同的格式显示日期/时间
表达式各参数含义:
SELECT DATE_FORMAT(gmt_create,'%Y-%m-%d %H:%i:%s') AS time
FROM `student` WHERE id = '31758fe2-fcda-11ea-99cb-8c16454db37c'
//结果:2020-09-22 22:36:27
二、SQL Server Date 函数
1、GETDATE() 返回当前日期和时间
同MySQL中的NOW()
2、DATEPART() 返回日期/时间的单独部分
同MySQL中的EXTRATE()
参数集:
3、DATEADD() 在日期中添加或减去指定的时间间隔
同MySQL中的DATE_ADD()和DATE_SUB()
4、DATEDIFF() 返回两个日期之间的时间
同MySQL中的DATEDIFF(),但是比MySQL中的多一个参数也就更强大!
语法:DATEDIFF(datepart,startdate,enddate)
startdate为开始时间,enddate为结束时间,datepart为返回的值的单位
5、CONVERT() 用不同的格式显示日期/时间
同MySQL中的DATEFORMAT()
语法:CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度),data_to_be_converted 含有需要转换的值,style 规定日期/时间的输出格式
style参数表:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
//第一个参数相当于字符串截取吧!我这样理解不知道有没有问题!
结果:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
总结
在实习的这段时间,项目中需求总是遇到那种查询数据的时候需要用时间做为条件的查询,今天又无意中找到W3school中的SQL对时间处理的章节,感觉很有用,再遇到时间处理的需求,再也不用百度了!!!记住很有用!!!
W3school关于Date的函数讲解的链接