SQL---日期的函数

SQL—日期的函数

提示:本人新手,仅供参考,文章参考W3school文档

一、MySQL Date函数

1、NOW() 返回当前的日期和时间

INSERT INTO `student`(id,`name`,`password`,gmt_create) 
VALUES(UUID(),'123','456',NOW())

NOW()

2、CURDATE() 返回当前日期

INSERT INTO `student`(id,`name`,`password`,gmt_create) 
VALUES(UUID(),'123','456',CURDATE())

CURDATE()

3、CURTIME() 返回当前的时间

INSERT INTO `student`(id,`name`,`password`,gmt_create) 
VALUES(UUID(),'123',CURTIME(),CURDATE())

CURTIME()

4、DATE() 提取日期或日期/时间表达式的日期部分

INSERT INTO `student`(id,`name`,`password`,gmt_create) 
VALUES(UUID(),'123',DATE(NOW()),CURDATE())

DATE()

5、EXTRACT() 返回日期/时间按的单独部分

基本语法:EXTRACT(Unit参数 FROM DATE类型值)
参数集:
Unit值

SELECT EXTRACT(YEAR FROM gmt_create) AS `year` 
FROM `student` WHERE 
id = '31758fe2-fcda-11ea-99cb-8c16454db37c'

结果:2020

6、DATE_ADD() 给日期添加指定的时间间隔

参数集:
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() 用不同的格式显示日期/时间

表达式各参数含义:
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()
参数集:
DATEPAET()

3、DATEADD() 在日期中添加或减去指定的时间间隔

同MySQL中的DATE_ADD()和DATE_SUB()
DATEADD()

4、DATEDIFF() 返回两个日期之间的时间

同MySQL中的DATEDIFF(),但是比MySQL中的多一个参数也就更强大!
语法:DATEDIFF(datepart,startdate,enddate)
startdate为开始时间,enddate为结束时间,datepart为返回的值的单位
DATEDIFF()

5、CONVERT() 用不同的格式显示日期/时间

同MySQL中的DATEFORMAT()
语法:CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度),data_to_be_converted 含有需要转换的值,style 规定日期/时间的输出格式
style参数表:
CONVERT()

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的函数讲解的链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值